sed 's/\([ab]\)\([ab]\)./\2\1x/g' file.txt
我的理解是:在 file.txt的,找到任何字符串無論是「A」或「B」開頭,跟隨一個「A」或「B」,後跟任意一個字符(比如' abc'),並用字符串1st和第二個字符替換它,第三個字符是x('bax')。該命令的語法是否正確?我是否正確?這是一個有效的shell sed命令,它有什麼作用?
sed 's/\([ab]\)\([ab]\)./\2\1x/g' file.txt
我的理解是:在 file.txt的,找到任何字符串無論是「A」或「B」開頭,跟隨一個「A」或「B」,後跟任意一個字符(比如' abc'),並用字符串1st和第二個字符替換它,第三個字符是x('bax')。該命令的語法是否正確?我是否正確?這是一個有效的shell sed命令,它有什麼作用?
你是對的,除了開始部分。這將在字符串中的任何匹配的字符,多次越好,這樣你最終像這樣的置換:
"123ab1" to "123bax"
"1234ab" to "1234ab"
"ab1ba2" to "baxabx"
"bbaabb" to "bbxbax"
你可能想要做的就是它的錨字符串與脫字符開始,像這樣:
s/^\([ab]\)\([ab]\)./\2\1x/g
,並提供:
"abc123" to "bax123"
"123abc" to "123abc"
+1我錯過了derrdji說'開始'的地方。好決定。 – Cascabel 2009-09-22 21:58:15
是的,你是 - 注意到'g'在最後意味着它會在每一行上進行儘可能多次的替換。任何理由,你不能只是嘗試看看?
肯定採取Jefromi的建議,並嘗試在一個樣本文件。 – 2009-09-22 21:49:54