如何传递动态变量给awk的行为语句
awk行为语句中如何得到外部变量,如某一文件总行数
尝试了如下的脚本
totallines=$(cat $1|wc -l) echo $totallines cat $1|awk '{print $totallines}'
执行该脚本
./awk_get_totallines.sh temp.txt 10 3 2 1 4 5 6 9 10 8 7
得到的是一串随机数字,似乎并未能正确识别到totallines这一shell变量.
问如何传递动态变量给awk的行为语句呢?
问题背景:
因为使用的tac来读取文件(从尾到头), 想在打印满足条件的行时同时打印行号
#其中11为总行数 总行数-NR = 正确的行号
$ tac temp.txt | awk '{if($0%2==0) print 11-NR,$0}'
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
可通过如下方式传递变量给awk行为语句
参考文档:
http://stackoverflow.com/questions/19075671/how-to-use-shell-variables-in-awk-script