Command-Line

SED - 查找並替換為特殊字元 (#, , % )

  • August 26, 2015

我知道這是一個非常簡單的問題,但我正在努力尋找解決方案。

我需要在/etc/aliases文件中自動查找並替換以下部分:

# Person who should get root's mail
#root:   marc

它需要看起來像:

# Person who should get root's mail
root:  someone@something.tld

而且我一直無法找到解決方案。各位大佬能進來提點建議嗎?不需要sed

在 GNU 系統上,您可以使用:

sed -i '/^#[[:blank:]]Person/{n;s/#root:[[:blank:]]\+marc/root:\tsomeone@something.tld/;}' file

它搜尋以 開頭的行# Person。然後切換到下一行並替換#root:<blanks>marcroot:<tab> .... 該-i標誌就地編輯文件。

-i,\+並且\t是 GNU 擴展。的標準等價物\+是 wordier \{1,\}。要便攜地編輯文件,您需要使用臨時文件。的標準等效項\t是按字面意思插入製表符。

引用自:https://unix.stackexchange.com/questions/225550