如何在csh中使用sed结合正则提取行中指定内容
使用sed提取指定内容
原始输入行:
s1.p: SomeTextWithSpaces: ABC = xxxxxx, SomeTextWithSpaces2 = yyy, SomeTextWithSpaces3 = zzzz
期望输出:s1.p: xxxxxx
可以用这条sed命令实现:
sed -E 's/^(s1\.p:).*ABC = ([^,]+),.*/\1 \2/'
命令说明:
-E:启用扩展正则表达式语法,减少不必要的转义字符^(s1\.p:):匹配行首的s1.p:并将其捕获为第一个分组.*ABC =:匹配从s1.p:之后到ABC =之间的所有内容([^,]+):捕获ABC =之后到第一个逗号前的所有字符(即目标值xxxxxx)作为第二个分组,.*/:匹配逗号及之后的所有剩余内容\1 \2:将整行替换为第一个分组内容加上空格和第二个分组内容
内容的提问来源于stack exchange,提问作者Samp
相关产品推荐
相关产品推荐

