提取并显示具有相似模式的匹配字符串



我有一条非常长的线。它包含许多具有类似模式的字符串,如下所示;

t[0-4]_vmdk_[a-z]_anything

t后跟一个可能为0-4的个位数,它们是"_vmdk_'",以及任何可能为[a-z]的长字符串,然后最后是"_"最后剩下的可以是任何东西。

例如:

asdfasfsa/_asdf**t2_vmdk_abc_**badfad**t3_vmdk_xyz_**asdfasdf**t1_vmdk_efg_**asbafdfb....

请帮我显示所有这样的字符串。非常感谢。

最简单的可能是grep。如果输入字符串来自另一个命令的标准输出(例如echo(:

$ str='asdfasfsa/_asdf**t2_vmdk_abc_**badfad**t3_vmdk_xyz_**asdfasdf**t1_vmdk_efg_**asbafdfb....'
$ echo "$str" | grep -o 't[0-4]_vmdk_[a-z]*'
t2_vmdk_abc
t3_vmdk_xyz
t1_vmdk_efg

说明:CCD_ 3选项打印">仅匹配行的匹配(非空(部分";。

如果输入字符串存储在文件中:

$ grep -o 't[0-4]_vmdk_[a-z]*' file.txt
t2_vmdk_abc
t3_vmdk_xyz
t1_vmdk_efg

最新更新