grep匹配模式并保存到不同的文件

时间:2016-08-18 17:26:16

标签: shell awk grep

我在mpd文件中有一些行,如下所述。我只想grep以.ts结尾的单词并将它们保存在不同的文件中。有人可以帮我吗?

    <SegmentURL media="1.ts" mediaRange="0-3424419"/>
 <SegmentURL media="2.ts" mediaRange="0-8063319"/>
 <SegmentURL media="3.ts" mediaRange="0-7146631"/>
 <SegmentURL media="4.ts" mediaRange="0-8984143"/>

2 个答案:

答案 0 :(得分:0)

$ grep -o '\<\w*\.ts\>' infile
1.ts
2.ts
3.ts
4.ts
  • \<\>是文字标记的开头/结尾
  • \w[_[:alnum:]]的同义词(在BSD grep中只是[[:alnum:]]
  • -o仅保留匹配

要将输出保存到文件output,请在命令后附加> output重定向。

答案 1 :(得分:0)

对于给定的示例,您不需要PCRE,BRE足以满足您的需求。

grep -o '[^"][.]ts' file

但请记住,grep会进行基于行的匹配。如果您的输入文件是html / xml,特别是,如果它是由某个应用程序生成的,那么这些行可能会被破坏。因此,grep可能会失败。

如果是这种情况,请使用xml / html解析器。