需要将与“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
是对捕获组的反向引用。