【问题标题】:Need help on awk command需要有关 awk 命令的帮助
【发布时间】:2015-04-12 20:07:37
【问题描述】:
  1. 我有一个文件file1,其中包含各种字符串。这些字符串必须与正则表达式一起使用。
  2. 我有另一个文件将实时更新。 tail -f <filename> 将提供连续输出。

  3. 我的要求是跳过file1 中存在的字符串,并在file2 中显示其余输出。

例如:file1 有以下内容

Result of operation: got a 2 bytes
49.53.4F.30.31.36.30.30.30.30.31.35.30.32.31.30
Processing Event

注意:要匹配 file1 中的第 2 行,我必须使用正则表达式。

File2 的内容为 file1 + X。 因此,在我的输出中应该只显示 X(额外的行)。

【问题讨论】:

标签: regex bash unix awk scripting


【解决方案1】:

要实时显示对file2 的添加,同时跳过与file1 中的正则表达式匹配的任何行,请使用:

tail -f file2 | grep -vf file1

【讨论】:

  • 什么是文件 3,文件 4.. 除了文件 2,我想显示常见的输出。请帮忙
  • 这个问题,正如它目前所写的那样,没有提到file3file4。您想要“显示公共输出”是什么意思?如果它们也在file3file4 中,您是否只想显示来自file2 的行?还是什么?
  • 是的。 file1 有要检查的主字符串列表。 file2,file3,file4 可以包含来自 file1 的字符串。我想将 file2、3、4 中所有不匹配的输出都列出来。抱歉,之前没有给你这个信息。
  • 还要添加到这个答案,如果你想将 grep 输出传递给另一个管道命令,你可能需要将 --line-buffered 选项添加到 grep 命令。
  • 您好 anish,您能详细解释一下如何添加 --line-buffered 选项吗?一个例子会有很大帮助
猜你喜欢
  • 1970-01-01
  • 2019-05-17
  • 2018-04-04
  • 2022-10-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-06-05
  • 1970-01-01
相关资源
最近更新 更多