2011-01-28 61 views

回答

1

如果我理解你的問題,你要像test:growTest:ret字符串成爲growTest:ret

您可以使用:

sed -i 's/test:(.*$)/\1/' 

意味着編輯到位。

s/one/two /替換出現的一個兩個

所以這個用「\ 1」代替「test:(。* $)」。其中\ 1是第一組的內容,這是正則表達式在大括號內匹配的內容。

「test:(。* $)」與「test:」的第一個匹配項匹配,然後將其他所有內容放到直線到支架的末尾。在sed命令之後,大括號的內容仍然存在。

1
  1. Sed使用飢餓的匹配。因此^.*:將與test:以外的test:growTest:匹配。
  2. 默認情況下,sed只替換第一個匹配的模式。所以你不需要做任何特別的事情。
5

修改你的正則表達式^.*:^[^:]*:

所有你需要的是,.*建設不會消耗你的分隔符 - 結腸。爲此,請將匹配任意字符.替換爲否定括號:[^abc],匹配任何字符,但指定的除外。

另外,不要混淆兩個旋轉因子^,因爲它們有不同的含義:第一個匹配字符串的開始,第二個意味着取反的括號。