Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/unix/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Unix 如果线条与图案匹配,则打印一系列线条_Unix_Awk_Sed_Grep - Fatal编程技术网

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

解释如何从发布的示例输入中获取输出,或者如果无法从发布的输入中获取发布的输出,请修复示例。解释如何从发布的示例输入中获取输出,或者如果无法从发布的输入中获取发布的输出,请修复示例。。