我正在尝试通读文件的第一行并找到在命令行中指定的列。例如:command <column> <textfile>
so column is$1
和 textfile $2
。
我正在编写一个 awk 命令来将文件列拆分为一个数组,然后是一个 for 循环来检查数组元素何时与列参数匹配。这是代码:
awk 'NR == 1 {split ( $0,titles ); for ( i=1 ; titles[i] != "$1" ; i++ ) ; FS = " "} NR > 1 {print $i }' file
我希望$1
引用第一个命令行参数而不是 awk 看到的第一列。 如何在 for 循环中获取 column 参数?我以为我可以为变量创建一个变量$1
并将其传递给它,awk
但这没有用,或者我做错了——非此即彼。几个小时以来,我一直在查找有关此的内容。我可能会遗漏一些明显或愚蠢的东西,但它已经到了我真的只需要知道如何做到这一点的地步。同样在我寻找答案的过程中,我阅读了有关ARGV[]
. 我想ARGV[1] == $1
但显然不是这样的ARGV
数组指的是什么?谢谢你的尽心帮助。
(注意:只是为了帮助解决任何混淆文件是文本文件的编辑版本,称为 $2)