我有一個字符串僅更換一次出現匹配的正則表達式使用sed
test:growTest:ret
並與sed的,我將只刪除測試:獲得:
growTest:ret
我試着用
sed '0,/RE/s/^.*://'
但它只給我
ret
任何想法?
感謝
我有一個字符串僅更換一次出現匹配的正則表達式使用sed
test:growTest:ret
並與sed的,我將只刪除測試:獲得:
growTest:ret
我試着用
sed '0,/RE/s/^.*://'
但它只給我
ret
任何想法?
感謝
如果我理解你的問題,你要像test:growTest:ret
字符串成爲growTest:ret
。
您可以使用:
sed -i 's/test:(.*$)/\1/'
我意味着編輯到位。
s/one/two /替換出現的一個與兩個。
所以這個用「\ 1」代替「test:(。* $)」。其中\ 1是第一組的內容,這是正則表達式在大括號內匹配的內容。
「test:(。* $)」與「test:」的第一個匹配項匹配,然後將其他所有內容放到直線到支架的末尾。在sed命令之後,大括號的內容仍然存在。
^.*:
將與test:
以外的test:growTest:
匹配。修改你的正則表達式^.*:
到^[^:]*:
所有你需要的是,.*
建設不會消耗你的分隔符 - 結腸。爲此,請將匹配任意字符.
替換爲否定括號:[^abc]
,匹配任何字符,但指定的除外。
另外,不要混淆兩個旋轉因子^
,因爲它們有不同的含義:第一個匹配字符串的開始,第二個意味着取反的括號。