我想在awk或cut命令中输入字符串名称(即"COL2")并打印与该列标题字符串匹配的列.
数据文件如下所示:
COL1 COL2 COL3 COL4 COL5 COL6
a a b d c f
a d g h e f
c v a s g a
Run Code Online (Sandbox Code Playgroud)
如果我传入COL3,我希望它打印第三列,等等.我认为awk可能是最容易使用的东西,但切割也可以.我只是不确定如何去做这件事.
awk 1衬垫上面的问题(如果你有兴趣):
awk -v col=COL2 'NR==1{for(i=1;i<=NF;i++){if($i==col){c=i;break}} print $c} NR>1{print $c}' file.txt
awk -v col=COL3 'NR==1{for(i=1;i<=NF;i++){if($i==col){c=i;break}} print $c} NR>1{print $c}' file.txt
Run Code Online (Sandbox Code Playgroud)
只需使用-vcol=标志传递列名COL1,COL2,COL3等.