grep:在不同的行上打印不同的图案
grep: printing different patterns on different lines
这是一个示例列表:
apple
pear
orange
orange
apple
orange
pear
orange
pear
orange
apple
我想要实现的是打印完整的 orange 行 只有 如果(下面)之后的行有 apple 在里面(这行也会被打印出来)。使用上面的列表,grep 将 return 用连字符标记的行:
apple
pear
orange
-orange
-apple
orange
pear
orange
pear
-orange
-apple
这是我迄今为止最好的尝试,我用 strings:
开始命令
strings fruits.txt | egrep 'orange' -A 1 'apple'
但是 returns "grep: apple: No such file or directory".
如有任何帮助,我们将不胜感激!
有趣的挑战。我认为 sed
是完成这项工作的更好工具。
sed '/orange/ N; /orange.*\n.*apple/ !{D; N;};' fruits.txt
这是一个示例列表:
apple
pear
orange
orange
apple
orange
pear
orange
pear
orange
apple
我想要实现的是打印完整的 orange 行 只有 如果(下面)之后的行有 apple 在里面(这行也会被打印出来)。使用上面的列表,grep 将 return 用连字符标记的行:
apple
pear
orange
-orange
-apple
orange
pear
orange
pear
-orange
-apple
这是我迄今为止最好的尝试,我用 strings:
开始命令strings fruits.txt | egrep 'orange' -A 1 'apple'
但是 returns "grep: apple: No such file or directory".
如有任何帮助,我们将不胜感激!
有趣的挑战。我认为 sed
是完成这项工作的更好工具。
sed '/orange/ N; /orange.*\n.*apple/ !{D; N;};' fruits.txt