如何使用 AWK 使用 argv 打印文本文件的第 N 列
假设我有一个文本文件,其中的数据由空格分隔成列。 我想编写一个 shell 脚本,它将文件名和数字 N 作为输入并仅打印出该列。 使用 awk,我可以执行以下操作:
awk < /tmp/in '{print $2}' > /tmp/out
此代码打印出第二列。
但是如何将其包装在 shell 脚本中以便可以在 argv 中传递任意列呢?
Suppose I have a text file with data separated by whitespace into columns. I want to write a shell script which takes as input a filename and a number N and prints out only that column. With awk I can do the following:
awk < /tmp/in '{print $2}' > /tmp/out
This code prints out the second column.
But how would one wrap that in a shell script so that a arbitrary column could be passed in argv?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
或者在 shell 脚本中:
or in a shell script:
其中 $myvar 是您的变量列(整数)。 小心脚本注入!
Where $myvar is your variable column (an integer). Watch out for script injections!