我有一个.tsv文件,其中包含一些行和列。
其中一列称为“结果” ,是第二列。
Bash代码: cut -f2 可以很好地选择“结果”中的内容。
但是我如何使用 cut命令 选择该列而不知道列号,而只知道名称“ result”。另外没有awk命令吗?
答案 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