使用sed从配置文件中删除参数

时间:2018-04-16 08:10:41

标签: bash sed

我试图删除配置文件中同一行上的一些弃用参数。立即:

PARAM='param1=X param2=Y param3=Z param4=T opt1=A opt2=B'

命令sed -i 's/param.*//g' [file]

将删除整行而不是预期的行(" param1,2,3 only")。

你能给我一些帮助吗?

谢谢, 红

2 个答案:

答案 0 :(得分:0)

如果您想使用sed,以下内容可能会有所帮助。

sed '/PARAM=/s/param[1-3]=[a-zA-Z] *//g'

sed '/PARAM=/s/param[1-3]=[^ ] *//g'

执行以下操作:

  • 如果该行包含PARAM=/PARAM=/
  • 然后无效地替换正则表达式param[1-3]=[a-zA-Z] *s/param[1-3]=[a-zA-Z] *//g

构建正则表达式以匹配单个param

输出:

$ echo PARAM=\'param1=X param2=Y param3=Z param4=T opt1=A opt2=B\' \
  | sed '/PARAM=/s/param[1-3]=[a-zA-Z] *//g'
PARAM='param4=T opt1=A opt2=B'

答案 1 :(得分:0)

这样的东西?:

cat test
PARAM='param1=X param2=Y param3=Z param4=T opt1=A opt2=B'
sed 's/param[1-3]=[^ ]*//ig' test
PARAM='   param4=T opt1=A opt2=B'