如何使用sed删除文本中的引号?

时间:2015-03-29 14:38:16

标签: regex linux sed

如何更换以下内容: 使用password = "my_password"在linux中password = my_passwordsed? 如果没有""我不应该做任何事情。

2 个答案:

答案 0 :(得分:3)

我说

sed 's/"\([^"]*\)"/\1/' filename

你对自己的具体要求有点模糊;如果您只希望在某些行中进行此替换,请使用

sed '/pattern/ s/"\([^"]*\)"/\1/' filename

将其限制为与pattern匹配的行。例如:

sed '/^password =/ s/"\([^"]*\)"/\1/' filename

仅在以password =开头的行中执行。

答案 1 :(得分:0)

sed 's/password = \"\([^"]*\)\"/password = \1/'

首先,将模式分组为双引号=> \([^"]*\)(即一系列非双引号字符)。现在用password = "patt_group"password = patt_group =>分组模式)替换\1