替换所有出现的与unix中的模式不匹配的字符串

时间:2016-01-26 13:36:25

标签: regex unix sed

我有一个特定的要求,即根据特定条件替换采购订单中的双引号(tab \ pipe分隔)。源文件中的示例记录如下所示:

Record 1 : Item1|length 24.0" width 21"|Yes

Record 2 : Item2|"Length 25.0
           Width 26.0"|No

如上所示,第二条记录在描述中有换行符,并用双引号括起来。 我想替换所有其他字段中出现的双引号,不受双引号的限制,就像在记录1的描述字段中一样。

我的结果如下所示

Record 1 : Item1|length 24.0 width 21|Yes --> Double quotes removed

Record 2 : Item2|"Length 25.0
           Width 26.0"|No --> Double quotes left as such

如何使用sed处理此问题?

1 个答案:

答案 0 :(得分:0)

$ sed 's/"\([^"]*\)"/\1/' file
Record 1 : Item1|length 24.0 width 21|Yes

Record 2 : Item2|"Length 25.0
           Width 26.0"|No

如果这不符合您的要求,请编辑您的问题以提供更全面的样本输入和预期输出。