Bash:如何在不使用awk的情况下按字符串分割字段?

时间:2019-04-29 11:53:32

标签: bash terminal cut

我有一个.tsv文件,其中包含一些行和列。

其中一列称为“结果” ,是第二列。

Bash代码: cut -f2 可以很好地选择“结果”中的内容。

但是我如何使用 cut命令 选择该列而不知道列号,而只知道名称“ result”。另外没有awk命令吗?

1 个答案:

答案 0 :(得分:0)

请尝试以下操作(由于未提供示例,因此未对其进行测试,并且还考虑到Input_file是,分隔的,因此可以通过更改程序的FS=","部分来更改程序的分隔符也是如此)。

awk 'BEGIN{FS=","} FNR==1{for(i=1;i<=num;i++){if($i == "results"){column=i;break}};next} {print $column}' Input_file

以上将不会打印列名,因此如果您要打印第一行的列名(这是当然的结果),请尝试执行以下操作。

awk 'BEGIN{FS=","} FNR==1{for(i=1;i<=num;i++){if($i == "results"){column=i;;print $i;break}};next} {print $column}' Input_file