三剑客之sed用法


1.替换文本中的部分字符串(-r选项启用sed正则)

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


你可能感兴趣的:(sed)