开发者社区 问答 正文

如何在多个文件上使用awk?

我正在使用Linux。我写了一些看起来像这样的代码:

for x in {10..20}:{00..59}; do awk -F';' '/'"$x"'/ {y+=$7} END {print y}' Data26092019; done 如何在多个文件上使用此命令,例如:Data26092019和Data27092019?

这些文件是这样的:

09:55:13;ACSEL;4.850;16;77.60;1;1
09:55:13;ACSEL;4.850;40;194.00;2;1
09:55:13;ACSEL;4.850;465;2255.25;3;1

... 输出示例:

Data26092019 4988 10:00
Data26092019 2778 10:01
...
Data27092019 3252 10:00
Data27092019 3002 10:01

也许它应该与另一个for循环一起使用,或者您可以指定文件。

主要命令是:

for x in {10..20}:{00..59}; do awk -F';' '/'"$x"'/ {y+=$7} END {print y}' Data26092019; done

它必须在Data26092019和上执行Data27092019。

展开
收起
祖安文状元 2020-01-07 13:55:14 487 分享 版权
1 条回答
写回答
取消 提交回答
  • 简单地说,您将执行以下操作:

    for file in f1 f2 f3 f4; do
       for time in {10..20}:{00..59}; do 
          sum=$(awk -v t="${time}" -F";" '($0~"^"t){sum+=$7}END{print sum}' "$file"
          echo "$file $sum $time"
       done
    done
    
    

    但是,这非常慢,因为在搜索特​​定时间键时您将多次打开每个文件。

    2020-01-07 13:55:23
    赞同 展开评论
问答分类:
问答地址: