来自reference:catonmat.net我想我可以使用以下命令在两个模式之间获得感兴趣的选择:
Source Text (one line): 6 June 2013 08.32.435 UTF+8 Report /content/folder[@name='....' Failure ....这里重要的部分是报告的路径,因此我使用:
awk '/content\/folder\[@name=/,/Failure/' source.csv我得到了整个匹配的行,而不仅仅是两个匹配之间的内容路径。
我也尝试过:
sed -n '/content\/folder\[@name/,/Failure/ {/content\/folder\[@name\|Failure/!p}' source.csv仍然返回整行...
出什么问题了?
发布于 2013-06-07 14:12:21
试试这个:
sed -n '|content/folder\[@name.*Failure|s|.*content/folder\[@name\(.*\)Failure.*|\1|' source.csv/re1/,/re2/用于选择行的范围,而不是行中的文本范围。因为content/folder和Failure在同一行上,所以不需要范围,只需要一个匹配包含两者的行的正则表达式即可。然后使用s///在它们之间添加额外的部分。
https://stackoverflow.com/questions/16977291
复制相似问题