我有一个文件通过字段列表说a.txt
和下面是它的内容:打印作为一个变量
bob 1 100
lincoln 2 200
chris 3 300
文件内容之间用空格分隔。
使用awk,我可以访问每列。使用以下命令 打印由逗号分隔的第1和第3列:
cat a.txt | awk ' { print $1","$3} '
,我是成功的。
现在我想从另一个shell脚本动态地传递条件。通过说标准我的意思是 - $1","$3
。
我试过下面的命令,但它没有工作。
myvar="$1"
awk -v a="$myvar" ' { print a } ' a.txt
但这打印$1
3倍有三排在a.txt
。
如何通过这种方式将awk的列表传递给awk?
'“$ 1”'意味着你的shell脚本的第一个参数。你怎么称呼你的剧本? '脚本“1”'?如果'a'为'1',则应该打印'$ a' – Kent
“$ 1”,“$ 3” - 这部分需要动态传递 - 以及分隔符。比如说,如果我有5列,我应该可以发送像1美元,2美元,3美元,4美元,5美元即1和2,4和5分开的逗号和休息 - 我会从另一个文件传递模式作为参数awk命令将在不同的文件 –