1.替换文本中的部分字符串(-r选项启用sed正则)
1
2
|
root@oldboy oldboy$
echo
"2q434343:awd_QQW.tar"
|
sed
-r
's/(:)[^<]*(_)[^<]*(\.)/\1replcae\2replace\3/g'
2q434343:replcae_replace.
tar
|
说明:
1) 只替换三个"()"之间的字符,其余字符(2q434343和tar)保持不变。
2) (:)、(_)、(\.)分别表示文本中的":","_",".",用于后项引用,\1代表":",\2代表"_",\3代表"."。
3) [^<]*匹配任意个非"<"的字符,此处依次匹配的为"awd"与"QQW",若将*换为+则表示一个或多个非"<"的字符。
4) replace表示替换后的字符串。
5) 执行完后就将"awd"与"QQW"替换为replace
6) 若其后不写replace则会将"awd"与"QQW"字符删除掉
root@oldboy oldboy$echo "2q434343:awd_QQW.tar" | sed -r 's/(:)[^<]*(_)[^<]*(\.)/\1\2\3/g'
2q434343:_.tar
本文转自 xoyabc 51CTO博客,原文链接:http://blog.51cto.com/xoyabc/1685668,如需转载请自行联系原作者