如何删除不包含模式1或模式2的行

时间:2017-08-24 18:44:39

标签: sed bsd

使用sed我可以这样做

credential.refreshToken()

但是如何将它与2种模式进行比较呢?所以它只删除那些没有2个图案中至少1个的行?

4 个答案:

答案 0 :(得分:1)

这听起来像是grep的工作,例如:

seq 10 | grep -e 3 -e 7

输出:

3
7

答案 1 :(得分:1)

您可以使用:

删除任何不包含alpha或beta或gama的行。

sed -n '/alpha\|beta\|gama/p' < 1.txt > 2.txt

答案 2 :(得分:0)

您可以对-e使用多个命令,并使用-np代替!d

sed -n -i '' -e '/myPattern/p' -e '/myPattern2/p' file

通常我更喜欢awk,因为你可以使用布尔逻辑,如:

awk '/pattern1/ || /pattern2/' file

awk '/pattern1/ && /pattern2/' file

等等。

不过,有了GNU awk,你还可以编辑文件:

gawk -i inplace '/pattern1/||/pattern2/' file

答案 3 :(得分:0)

我认为我会使用不区分大小写(-i)否定(-vgrep进行扩展(-E)轮换({{1} })两种模式:

|