有没有一种方法可以让我执行grep命令:
这是一个关键词,可以找到"主题:这是关键词">
在文件中,这些可能是的可能结果
主题:这是一个关键词
主题:这是关键词
主题:这个是关键字
我不知道有多少变化。有没有一种方法可以在没有regex的情况下使用grep来匹配所有这些场景?
否则,更糟糕的情况是,我将不得不将所有内容复制到另一个文件,删除所有新行并连接,然后进行grep
这里我使用了另外两个简单的实用程序来格式化文件,这样就可以在不使用正则表达式的情况下对其进行grep。
注意,在这种情况下,新的临时换行符总是以"Subject:.."开头,因此grep的输出可能包含该行的其余部分,直到下一个"Subject:.."。
示例输入文件:
Subject: This is a
keyword
Sample text here-
Subject: This is
a keyword
Another text here
Subject: This
is a keyword
Ending line!
命令:
cat test.txt | tr -d 'n' | sed 's/Subject: /n&/g' | grep 'Subject: This is a keyword'
样本输出:
Subject: This is a keywordSample text here-
Subject: This is a keywordAnother text here
Subject: This is a keywordEnding line!
请注意,如果换行符甚至出现在单词"Subject:"中,则必须编辑该命令。
您可以使用tr
将换行符n
转换为NUL字符