Unix 如果线条与图案匹配,则打印一系列线条
我的意见Unix 如果线条与图案匹配,则打印一系列线条,unix,awk,sed,grep,Unix,Awk,Sed,Grep,我的意见 1 abc 1cde efg xxx 1 abc pattern1 pattern2 efg xxx 1 abc cde efg xxx 我的预期输出(从1打印,其中包含图案1和2): 我已就以下事项提出意见: sed -n '/^1/ {x;/pattern1/ {N;/\n.*pattern2/p};d} $/^1/ {h;/pattern1/ {N;/\n.*pattern2/p};d}}H' My file 顺便说一句,我的文件是一个非常大的文件,请告诉我一个方法,
1
abc
1cde
efg
xxx
1
abc
pattern1
pattern2
efg
xxx
1
abc
cde
efg
xxx
我的预期输出(从1打印,其中包含图案1和2):
我已就以下事项提出意见:
sed -n '/^1/ {x;/pattern1/ {N;/\n.*pattern2/p};d} $/^1/ {h;/pattern1/ {N;/\n.*pattern2/p};d}}H' My file
顺便说一句,我的文件是一个非常大的文件,请告诉我一个方法,可以做得很快。
非常感谢。sed代表的是
s/old/new/
——仅此而已。对于其他任何东西,您都应该使用awk
看起来您的预期输出实际上无法通过示例输入生成,因此这是一个猜测,未经测试,因为我们没有任何具体的测试依据,但听起来您可能想要:
awk -v RS= -v ORS='\n\n' '/pattern1/ && /pattern2/' file
sed代表的是
s/old/new/
——仅此而已。对于其他任何东西,您都应该使用awk
看起来您的预期输出实际上无法通过示例输入生成,因此这是一个猜测,未经测试,因为我们没有任何具体的测试依据,但听起来您可能想要:
awk -v RS= -v ORS='\n\n' '/pattern1/ && /pattern2/' file
解释如何从发布的示例输入中获取输出,或者如果无法从发布的输入中获取发布的输出,请修复示例。解释如何从发布的示例输入中获取输出,或者如果无法从发布的输入中获取发布的输出,请修复示例。。