简体   繁体   English

一行中多次使用相同模式的正则表达式

[英]Regex for The Same Pattern Multiple Times in One Line

The pattern I'm looking for is this: 我正在寻找的模式是这样的:

TXT.*\.txt

That pattern can occur multiple times in any given line. 该模式可以在任何给定的行中多次出现。 I would like to either extract each instance of the pattern out or alternatively delete the text that surrounds each instance using sed (or anything, really). 我想要提取模式的每个实例,或者使用sed(或任何东西,真的)删除围绕每个实例的文本。

Thanks! 谢谢!

You can use Perl as: 你可以使用Perl作为:

$ cat file
foo TXT1.txt bar TXT2.txt baz
foo TXT3.txt bar TXT4.txt baz

$ perl -ne 'print "$1\n" while(/(TXT.*?\.txt)/g)' file
TXT1.txt
TXT2.txt
TXT3.txt
TXT4.txt
$ 

您可以使用grep作为:

grep -o 'TXT[^.]*\.txt' file

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM