我想提取<id>
和</id>
之间的所有数字,如下所示:
<id>123</id>
<id>456</id>
获取包含
的文件123
456
我对grep很新,谢谢你的回答。
答案 0 :(得分:2)
这可以做到:
$ grep -Po '(?<=<id>)\d+' file
123
456
它查找<id>
之后的任何数字并打印它们。
-o
代表“仅打印匹配行的匹配(非空)部分,每个此类部分位于单独的输出行”。-P
代表“将PATT解释为Perl正则表达式”。(?<=<id>)\d+
表示:仅在\d+
后匹配<id>
。 Regex tutorial - Lookahead和this nice explanation by sudo_O中的更多信息。