我的文件名称为 ,file123
内容为
passwd:x:redhat
redhat:x:pass
passwd:x:linux
passwd:x:redhatlinux
passwd
我想更改文件内的关键字,特别是 1,3 行。
答案1
你可以做:
sed '1,3 s/^passwd/NEW/' file123
1,3
仅sed
在 1 至 3 号线运行s/^passwd/NEW/
passwd
将开头 (^
)替换为NEW
,更改此值以满足您的需要。请注意,虽然1,3
从第 1 行到第 3 行匹配,但正则表达式模式仅匹配示例的第 1 行和第 3 行,因此仅对这些行进行修改
要就地编辑文件,使用 GNU 实现sed
:
sed -i '1,3 s/^passwd/NEW/' file123
答案2
如果您只想对第 1 行和第 3 行进行替换,您可以执行以下操作:
sed '
1 b subst
3 b subst
b
:subst
s/string/replacement/'
或者与awk
:
awk 'NR == 1 || NR == 3 {sub(/string/, "replacement")}
{print}'