我知道这是一个非常简单的问题,但我正在努力寻找解决方案。
我需要在文件中自动查找并替换/etc/aliases
以下部分:
# Person who should get root's mail
#root: marc
它需要看起来像这样:
# Person who should get root's mail
root: [email protected]
而且我一直没能找到解决办法。你们能提出一些建议吗?没必要这样sed
。
答案1
在 GNU 系统上,您可以使用以下命令:
sed -i '/^#[[:blank:]]Person/{n;s/#root:[[:blank:]]\+marc/root:\[email protected]/;}' file
它搜索以 开头的行# Person
。然后切换到下一行并替换#root:<blanks>marc
为root:<tab> ...
。该-i
标志会就地编辑文件。
-i
、\+
和\t
是 GNU 扩展。的标准等效项\+
是更冗长的\{1,\}
。要就地编辑文件,您需要使用临时文件。标准等效项\t
是按字面插入制表符。