Regex 在多行上打印正则表达式
我试图在给定的文件中搜索和打印(仅)包含某些标识符的部分。这些部分由起始标记和结束标记分隔,并延伸到多行。该任务需要通过unix命令完成 例如,对于以下行: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: 我想打印以“
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