我有一个awk命令打印出第26栏中出现“200”的总次数。
awk '$26 ~ /200/{n++}; END {print n+0}' testfile
如何修改此语句以便将200作为变量传递?例如如果我有一个值为200的变量$ code
提前致谢
答案 0 :(得分:3)
awk '$26 ~ code {n++} END {print n+0}' code=200 testfile
如果命令行上的文件名的格式为var = val,则将其视为变量 分配。变量var将被赋值val。
答案 1 :(得分:2)
awk -v var="$shellVar" '$26~var{n++} END{print n}' file
你在上面看到如何在awk中使用shell变量。你的awk单行的一些注意事项:
print n+0
没有必要。因为您定义的n
,未从输入文字中挑选,并且您明确地执行了n++
,因此它是数字类型,n+0
没有意义
应删除;
之前的END
我复制了关于检查200部分的代码。但它有风险。如果26美元只有一个数字,你可以考虑使用1*$26 == 200
或$26 == "200"
使用正则表达式,在这种情况下可能会给出错误的结果,想想你的26美元,价值是:20200