我有一条非常长的线。它包含许多具有类似模式的字符串,如下所示;
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