g4u*_*r4v 4 grep sed awk regular-expression
我有以下内容的文件。
/ABC/RTE/AD_900_VOP_123/OPP
/ABC/RTE/TRE/AD_900_VOP_145/BBB
/ABC/RTE/AN_900_VFP_124/FBF
/ABC/RTE/HD_900_FOP_153/WEW
/ABD/RDV/AD_900_VOP_123/OPP
/ABC/RTE/WD_900_VOP_123/GRR/TRD
/ABC/RTE/RTD/AR_900_VOP_443/SDD
Run Code Online (Sandbox Code Playgroud)
如何在此文件上使用正则表达式,以便获得输出,例如
AD_900_VOP_123
AD_900_VOP_145
AN_900_VFP_124
HD_900_FOP_153
AD_900_VOP_123
WD_900_VOP_123
AR_900_VOP_443
Run Code Online (Sandbox Code Playgroud)
GNU grep
grep -oE '[[:alpha:]]+_[[:digit:]]+_[[:alpha:]]+_[[:digit:]]+'
Run Code Online (Sandbox Code Playgroud)
使用 perl-regex 标志和look-behind 和look-ahead 断言来保证匹配被包围 /
grep -oP '(?<=/)[[:alpha:]]+_[[:digit:]]+_[[:alpha:]]+_[[:digit:]]+(?=/)'
Run Code Online (Sandbox Code Playgroud)