在我的文件input.txt中,我想替换A-> B,B-> C和C->一 即我想要运行sed的圆形替代
s/A/B/g;
s/B/C/g;
s/C/A/g;
不过,我不如果我运行上面的sed脚本,A不变A-> B-> C-> A,B转到A(B-> C-> A)
有没有办法做我想要的替代品?
感谢
在我的文件input.txt中,我想替换A-> B,B-> C和C->一 即我想要运行sed的圆形替代
s/A/B/g;
s/B/C/g;
s/C/A/g;
不过,我不如果我运行上面的sed脚本,A不变A-> B-> C-> A,B转到A(B-> C-> A)
有没有办法做我想要的替代品?
感谢
有可能是一个更好的办法,但如果有适合的X和Y不是在你的input.txt中,你可以尝试:
s/A/X/g;
s/B/Y/g;
s/C/A/g;
s/X/B/g;
s/Y/C/g;
使用y运算符代替s运算符:
sed y/ABC/BCA/
我们可以用这种方式补充好的bgg答案。只需将一个换行符附加到要用作X
或Y
的字符串。如果我们有这样的文件:
$ cat teste.in
ABC DEF GHI
GHI ABC DEE
DEF ABB ABCd
我们执行这个sed命令:由于这是非常不可能的换行符将出现在一行
$ sed 's/ABC/ABC\n/g
s/DEF/DEF\n/g
s/GHI/ABC/g
s/ABC\n/DEF/g
s/DEF\n/GHI/g' teste.in
DEF GHI ABC
ABC DEF DEE
GHI ABB DEFd
,它的工作原理。 (请注意,我用GNU sed的一些SEDS不能接受\n
符号在这种情况下,只用一个反斜杠后跟一个实际的换行:。
$ sed 's/ABC/ABC\
/g
s/DEF/DEF\
/g
s/GHI/ABC/g
s/ABC\
/DEF/g
s/DEF\
/GHI/g' teste.in
DEF GHI ABC
ABC DEF DEE
这应该工作)
什么是A,B和C正好?字符或字符串? – ssapkota 2011-06-11 19:41:44