如何使用 sed linux 更新文件中的值

如何使用 sed linux 更新文件中的值

需要将与“root soft nproc”相对应的值从 180000 更改为 40000。示例文件如下所示: 有什么简单的方法可以在一行中执行此操作吗?

map   hard   nofile    1000
root    soft    nofile    1000
root    hard   nofile    1010
map   soft    nproc    1200
map   hard   nproc    1200
root    soft    nproc    180000
root    hard   nproc    180000

答案1

您可以使用

sed 's/^\(root\s*soft\s*nproc\s*\)180000$/\140000/' file > newfile

替换值到位使用选项-i

sed -i 's/^\(root\s*soft\s*nproc\s*\)180000/\140000/' file

语法是:sed 's/replace_old/with_new/' file

  • ^匹配行的开头
  • \s*匹配任意数量的空白字符(空格和制表符)
  • $匹配行尾

里面的部分\(...\)被捕获在一个组中,并被下面的部分替换,\140000其中\1是对捕获组的反向引用。

相关内容