Linux 中的 sed 命令示例

Linux 中的 sed 命令示例

我的文件名称为 ,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,3sed在 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}'

相关内容