在我的文件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