什么是grep命令来提取两个关键字之间的任何内容

时间:2013-06-18 08:38:23

标签: shell grep

我想提取<id></id>之间的所有数字,如下所示:

<id>123</id> 
<id>456</id> 

获取包含

的文件
123
456

我对grep很新,谢谢你的回答。

1 个答案:

答案 0 :(得分:2)

这可以做到:

$ grep -Po '(?<=<id>)\d+' file
123
456

它查找<id>之后的任何数字并打印它们。

  • -o代表“仅打印匹配行的匹配(非空)部分,每个此类部分位于单独的输出行”
  • -P代表“将PATT解释为Perl正则表达式”
  • (?<=<id>)\d+表示:仅在\d+后匹配<id>Regex tutorial - Lookaheadthis nice explanation by sudo_O中的更多信息。