我无法找到使用awk命令打印文本文件的特定列的方法。
我有一个FOR循环中的awk命令,它循环了大量的目录,并且在每个循环中,我使用awk命令从包含大量列的文本文件中打印两列。我需要的第一列在每个循环过程中都保持不变,所以我可以使用$ 1而没有问题。当我需要打印第二栏时出现问题。
我想通过awk打印的第二列通过for循环更改每次迭代。到目前为止,我试图做的是bash中的awk命令是否允许使用包含数值的变量来调用特定的列?
#Simplified Example
count=1 # the counter starts at 1 because I will not be needing col 1
for i in $list; do
count=count+1
awk '{print $1 "\t" ${count}}' $file > ex_files.txt
done
希望我在这里写的是有道理的。我查看了可能的其他帮助页面,以查找我的错误语法,但到目前为止还没有成功。大多数例子中,我已经看到awk的变量,它不是一个动态变量,所以我有点卡住了。
如果有更好的命令去做我试图做的事情,而不是“awk”,我对此表示欢迎。请让我知道如果你需要进一步澄清
而不是直接嵌入变量,我建议使用'-v'来传递变量:'awk -vc =“$ {count}”'{print $ 1“\ t”$ count}“' –
i尝试使用你的建议,但它并没有很好的工作。再一次,我不打算以任何方式成为bash wiz,但是你的意思是:'awk -v cnt =“$ {count}”'{print $ 1'\ t“$ cnt}''? – Jon