如何使用Sed替换字符串?
假设我有一根这样的绳子如何使用Sed替换字符串?,sed,Sed,假设我有一根这样的绳子 <start><a></a><a></a><a></a></start> 我想这样替换中的值 <start><ab></ab><ab></ab><ab></ab><more></more><vale></value></start>
<start><a></a><a></a><a></a></start>
我想这样替换
中的值
<start><ab></ab><ab></ab><ab></ab><more></more><vale></value></start>
如何使用Sed实现这一点?尝试以下方法:
sed 's@<start>.*</start>@<start><ab></ab><ab></ab><ab></ab></start>@' file
sed's@.*@@"档案"
sed的/(\/\1ab\>/g'您的文件
,虽然这会得到
之外的
。我用gnu sed得到这行代码:
sed -r 's#(<start>)(.*)(</start>)#echo "\1"$(echo "\2"\|sed "s:a>:ab>:g")"\3"#ge'
e、 g
kent$echo“”\
|sed-r的#()(.*)()#echo“\1”$(echo“\2”\\sed”s::g;s::g”)“\3”\ge'
grep-rl'abc'a.txt | xargs sed-i's/abc/def/g'不仅外部
还有或…
之类的标签,我想我已经修复了它,但是反向引用不是我通常使用的东西,所以可能是错误的。如果你不确定,那么就明确地把它放到答案上。
kent$ echo "<start><a></a><a></a><a></a><foo></foo><bar></bar></start>"|sed -r 's#(<start>)(.*)(</start>)#echo "\1"$(echo "\2"\|sed "s:a>:ab>:g")"\3"#ge'
<start><ab></ab><ab></ab><ab></ab><foo></foo><bar></bar></start>
sed -r 's#(<start>)(.*)(</start>)
#echo "\1"$(echo "\2"\|sed "s:<a>:<ab>:g;s:</a>:</ab>:g")"\3"
#ge'
kent$ echo "<start><a></a><a></a><a></a><aaa></aaa><aba></aba></start>" \
|sed -r 's#(<start>)(.*)(</start>)#echo "\1"$(echo "\2"\|sed "s:<a>:<ab>:g;s:</a>:</ab>:g")"\3"#ge'
<start><ab></ab><ab></ab><ab></ab><aaa></aaa><aba></aba></start>