删除文件中行的一部分,其中元素由模式定义

时间:2015-11-26 15:21:26

标签: linux ubuntu awk sed

我有一个包含行的csv文件,其中每行按如下方式组成:

Id="1" date="dd:mm:yyyy:hh:ss" body"abcdefghijklmo..." Owner="123" editor="456"

我想剪切与body相关的部分并保留文件的其余元素。问题是“身体”部分改变了它的NF,当我尝试使用sed -e'/ Body /,/ Owner / d'时它也不起作用。

任何人都可以提供帮助。

贝斯茨

1 个答案:

答案 0 :(得分:0)

使用非贪婪匹配的perl

while(<>) {
   s! body\".*?\"!!;
   print;
}

将删除body"与下一个引号之间的文字。通常*会匹配尽可能多的字符,但?会告诉它在第一个引号处完成匹配。