Command-Line
SED - 查找並替換為特殊字元 (#, , % )
我知道這是一個非常簡單的問題,但我正在努力尋找解決方案。
我需要在
/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>marc
為root:<tab> ...
. 該-i
標誌就地編輯文件。
-i
,\+
並且\t
是 GNU 擴展。的標準等價物\+
是 wordier\{1,\}
。要便攜地編輯文件,您需要使用臨時文件。的標準等效項\t
是按字面意思插入製表符。