【发布时间】:2021-10-11 19:34:59
【问题描述】:
我需要帮助从下面的 awk 结果中减去 2。谁能给我一个见解?
- 在第 12 列中查找按指定单词过滤的总行数
- 在第 12 列中查找由指定单词过滤并在第 13 列中具有指定日期的行总数
- 减去 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 脚本。
-
第一个代码示例是解决问题 1 和 2。我正在尝试将 1 和 2 组合并减去它们
-
太棒了!这要清楚得多。看来你也有答案了。
-
除其他外,我猜您应该使用完整的字符串比较时使用部分正则表达式比较。它也不清楚输出是否应包含所有 3 个值或仅包含减法后的最后一个值。如果您edit 您的问题包括简洁、可测试的样本输入和预期输出,那么我们可以为您提供帮助。
-
@EdMorton 我实际上是在寻找部分正则表达式。我正在寻找最终输出(#3)。我认为它足够基本,我不需要提供任何样本。