如何创建一个逻辑减去两个awk逻辑的结果?



我需要帮助减去下面awk结果的2。有人能给我指点一下吗?

  1. 查找第12列
  2. 中指定单词过滤的行总数
  3. 查找第12列中指定单词过滤的行总数,并且在第13列中具有指定日期
  4. 减去1和2并打印结果

这解决了问题1

awk -F ',' '$12 ~ /<WORD>/ {count++} END {print count}' file.csv

这解决了问题2

awk -F ',' '$12 ~ /<WORD>/ && $13 ~ /<DATE>/ {count2++} END {print count2}'  file.csv

不幸的是,我没有得到下面问题3的结果。

awk -F ',' '$12 ~ /<WORD>/ {count++} END {print count}' file.csv; awk -F ',' '$12 ~ /<WORD>/ && $13 ~ /<DATE>/ {count2++} END {print count2}'  file.csv; awk {print $count-$count2}

如果运行多个awk命令,则使用的变量是不共享的。如果您希望共享它们,您可以将这些命令合并到一个程序中:

awk -F ',' '
$12 ~ /<WORD>/ {count++}
'$12 ~ /<WORD>/ && $13 ~ /<DATE>/ {count2++}
END {print $count-$count2}
' file.csv

然而,你的三个规格似乎可以简化为:

打印csv文件file.csv中包含第12列特定单词且的行数。在第13列中包含特定日期

awk -F, '$12~/word/ && $13!~/date/ {n++} END {print n+0}' file.csv

其中/word//date/是分别提供所需单词和日期的正则表达式。

相关内容

  • 没有找到相关文章

最新更新