我想知道有什么问题:
b="inst.;inst" ; echo $b | sed -e 's/\.;[^ ]/\n /' inst nst
预期输出
inst
inst
提前感谢你提供的任何线索。
发布于 2014-11-06 08:35:25
你的图案匹配三个字符。句点,分号,和一些非空格字符。然后将所有这三个字符替换为两个字符(换行符和空格)。
因此,您的模式与.;i
匹配,并将其替换为\n
。
你需要捕捉并重新插入那个非空格字符。
在模式中使用\([^ ]\)
,\n \1
作为替代。
发布于 2014-11-06 08:34:02
您正在替换inst的第一个字符,取而代之的是捕获和保存它,即
sed -e 's/\.;\([^ ]\)/\n \1/'
发布于 2014-11-06 08:35:51
或者,只需将命令更改为b="inst .;inst“;将$b / sed -e的/;/\n/‘替换为换行符。
https://stackoverflow.com/questions/26784499
复制相似问题