bash 循环中的 awk 命令 - 识别双引号
我使用一个简单的 awk 脚本对第四列的拆分中的值进行求和。工作没有问题。
awk '{split($4,NM,"-");if ($10>1) {TGC+=NM[2]}}END{print TGC}' somefile.txt
当我尝试在 BASH 中循环它时,它会运行,但给出的答案是 1。
for i in somedir; do echo $i; awk '{split($4,NM,"-");if ($10>1) {TGC+=NM[2]}}END{print TGC}' $i ;done
问题出在分割中的引号中 - 我怎样才能正确地限定它以便 awk 识别分割?
干杯 斯塔勒
I use a simple awk script to sum a value in a split of the fourth column. Works no problems.
awk '{split($4,NM,"-");if ($10>1) {TGC+=NM[2]}}END{print TGC}' somefile.txt
When I try to loop it in BASH, it runs, but gives an answer of one.
for i in somedir; do echo $i; awk '{split($4,NM,"-");if ($10>1) {TGC+=NM[2]}}END{print TGC}' $i ;done
The problem is in the quotes within the split - how can I properly qualify it so awk recognizes the split?
Cheers
statler
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
我怀疑您打算让 for 循环检查某个目录中的文件,而不是目录本身:
I suspect you intended your for loop to examine the files in somedir, not the directory itself: