Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/18.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
Regex 在多行上打印正则表达式_Regex_Unix_Sed_Lines_Perl - Fatal编程技术网

Regex 在多行上打印正则表达式

Regex 在多行上打印正则表达式,regex,unix,sed,lines,perl,Regex,Unix,Sed,Lines,Perl,我试图在给定的文件中搜索和打印(仅)包含某些标识符的部分。这些部分由起始标记和结束标记分隔,并延伸到多行。该任务需要通过unix命令完成 例如,对于以下行: start: blah..blah 666 blah blah.. end: start: blah..blah 1234 blah blah.. end: start: blah..blah 8020 blah blah.. end: 我想打印以“

我试图在给定的文件中搜索和打印(仅)包含某些标识符的部分。这些部分由起始标记和结束标记分隔,并延伸到多行。该任务需要通过unix命令完成

例如,对于以下行:

start:
    blah..blah
    666
    blah blah..
end:
start:
    blah..blah
    1234
    blah blah..
end:
start:
    blah..blah
    8020
    blah blah..
end:         
我想打印以“开始”开头,以“结束”结尾的部分,例如标识符1234:

start:
    blah..blah
    1234
    blah blah..
end:  
欢迎您的帮助。

进入:

它产生:

start:
    blah..blah
    1234
    blah blah..
end:
触发器输入:

它产生:

start:
    blah..blah
    1234
    blah blah..
end:
这可能适用于您(GNU-sed):

收集
start:
end:
之间的行,如果该集合还包含
1234
,则打印它们。这可能对您有用(GNU-sed):


收集
start:
end:
之间的行,如果集合中还包含
1234

我投票结束这个问题,因为它似乎是一个对工具或解决方案的建议请求,而不是对您自己代码的帮助请求。这使您的问题脱离StackOverflow的主题。如果该评估不正确,并且您确实需要帮助编写自己的代码,那么请,我很高兴收回我的投票。我投票结束这个问题,因为它似乎是一个对工具或解决方案的建议请求,而不是对您自己的代码的帮助请求。这使您的问题脱离StackOverflow的主题。如果这个评估是不正确的,并且您确实需要帮助编写您自己的代码,那么请允许我收回我的投票。
sed -n '/start:/{:a;N;/end:/!ba;/1234/p}' file