我有以下几行代码
BalancerMember http://server3:82 status=D
BalancerMember http://server2:80 status=D
我想搜索端口 82 的条目,然后想删除status=D
.所以,它看起来像这样
BalancerMember http://server3:82
尝试过这个,但这行不通
grep :82 app.conf | sed -i 's/status=D/ /'
sed: no input files
我需要-i
选项 withsed
因为我想在 file 中进行更改。
有什么建议。
答案1
您可以测试完整的 sed 解决方案
sed -i '/:82 /s/status=D//' file
在哪里
/:82 /
选择带有 82 的行s/status=D/
将状态替换为//
没有什么。
答案2
根据您的示例数据,这应该有效
awk '/:82 /{print $1,$2; next} {print}' inputfile
您可以将其输出重定向到另一个文件中。
awk '/:82 /{print $1,$2; next} {print}' inputfile >> newfile
一般来说,如果可以的话,我不喜欢对原始数据进行更改。
答案3
基于给定的输入
awk '$2~/:82$/{$NF=""}1' input.txt > output.txt