EDA365电子论坛网

标题: 求助:sed字符串替换问题 [打印本页]

作者: qpggup    时间: 2020-8-21 13:49
标题: 求助:sed字符串替换问题
p=root1 d0 r6 v2 W! ~0 ]( ?4 |
q=wanggang+ z+ _: C- Q! }- U9 P2 U
sed -ri "s/\($p=\)\S*/\1$q/" file
, S, y' G1 {+ L7 \+ z
  G% o* n+ V6 J* _" @, i7 Z2 R# Y0 j9 g9 r3 E9 \1 d8 |. j
file文件内容, I! F; W* t$ K" d8 p6 x; L7 J6 }
root=zhuangshan
0 T/ c8 H/ Q( i% G9 W; q% f$ S7 ~& m+ C/ J& y# u: i
为何文本内容替换不成功,返回值$?也是0$ h6 h- f; g8 E' |4 k

作者: younicp    时间: 2020-8-21 14:25
帮顶
作者: thinkfunny    时间: 2020-8-21 14:51
括号不能转义,因为你这儿是一个逆序环视,要匹配的是一个分组,就得用括号。而当你需要匹配括号这个符号本身的时候,才需要转义。至于修改的话,删掉左右括号的转义符号就行。, W, y) I& T: K1 u- N, A
* _: J" n0 T# F* I$ l

作者: mutougeda    时间: 2020-8-21 14:52
因为你的sed使用了 -r参数  use extended regular expressions in the script.$ i! k! {& ]4 [9 T5 v
sed -i "s/\($p=\)\S*/\1$q/" file
5 L9 i5 ~+ X' l1 l- ^8 C( C
/ ^/ F5 b3 R( Z% h4 Q要不像楼上这样,使用-r 参数括号就不需要再转义了。




欢迎光临 EDA365电子论坛网 (https://bbs.eda365.com/) Powered by Discuz! X3.2