下面的sed將精確輸出輸入。我想要做的是在第一個匹配組(\ 1)中替換所有出現的_,而不是在第二個匹配組中。這可能嗎?如果只匹配某一行的匹配項,可以sed進行搜索和替換嗎?
echo 'abc_foo_bar=one_two_three' | sed 's/\([^=]*\)\(=.*\)/\1\2/'
abc_foo_bar=one_two_three
所以,我希望的輸出是:
abc-foo-bar=one_two_three
我寧願不訴諸awk的,因爲我在做其他sed命令串過,但我如果必須的話,我會訴諸於此。
編輯:小修復到RE
是您的RE真的是你想要什麼?我期望'\([^ =] *])\(=。* \)'。這就是我的答案,但可以根據需要進行調整。 – 2012-02-10 13:11:09
你說得對,我已經更新了這個問題來反映這一點。謝謝。 – 2012-02-10 13:21:51