use*_*149 2 unix csv bash shell parsing
我有以下格式的csv文件:
Time, Field1, Field2,
1000, 1, 2,
1001, 3, 4,
1002, 5, 6,
Run Code Online (Sandbox Code Playgroud)
我想从时间列中获取第一个和最后一个元素,并将它们存储在我的bash脚本中的变量中。
因此,基于此示例,我需要:
$start=1000
$end=1002
Run Code Online (Sandbox Code Playgroud)
我怎样才能做到这一点?
您有很多选择。这里是其中的一些:
使用head,tail并cut
$start=$(head -n2 file.csv | tail -n1 | cut -d',' -f1)
$end=$(tail -n1 file.csv | cut -d',' -f1)
Run Code Online (Sandbox Code Playgroud)
使用 awk
$start=$(awk -F',' 'NR==2{print $1}' file.csv)
$end=$(awk -F',' 'END{print $1}' file.csv)
Run Code Online (Sandbox Code Playgroud)
单线使用awk(由于此答案)
read start finish <<< $(awk -F',' 'NR==2{print $1}END{print $1}' file.csv)
Run Code Online (Sandbox Code Playgroud)
另一个单线使用 awk
read -d'\n' start finish < <(awk -F',' 'NR==2{print $1}END{print $1}' file.csv)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2735 次 |
| 最近记录: |