一、
cat file.txt groups=001(group1), 002(group2), 003(group3) groups=004(group4), 005(group5)
只想输出
group1
group2
group3
group4
group5
(1)awk 'BEGIN{FS="[()]"} {if($0~/^.*[0-9][0-9][0-9]\(group[0-9]+\).*$/) print $2}' file.txt 步骤详解: ➜ 011_cmdb_op awk 'BEGIN{FS="[()]"} {if($0~/^.*[0-9][0-9][0-9]\(group[0-9]+\).*$/) print $1}' file.txt groups=001 002 003 groups=004 005 ➜ 011_cmdb_op awk 'BEGIN{FS="[()]"} {if($0~/^.*[0-9][0-9][0-9]\(group[0-9]+\).*$/) print $2}' file.txt group1 group2 group3 group4 group5 ➜ 011_cmdb_op awk 'BEGIN{FS="[()]"} {if($0~/^.*[0-9][0-9][0-9]\(group[0-9]+\).*$/) print $3}' file.txt , , , #通过以上输出可见是以()为匹配的 或 (2)awk '{sub(/^.*[0-9][0-9][0-9]\(/,""); sub(/\).*$/,""); print}' file.txt ➜ 011_cmdb_op awk '{sub(/^.*[0-9][0-9][0-9]\(/,"");print}' file.txt #删除正则匹配的部分 group1), group2), group3) group4), group5) awk '{sub(/^.*[0-9][0-9][0-9]\(/,""); sub(/\).*$/,""); print}' file.txt #再删除括号后边的部分 group1 group2 group3 group4 group5
(3)实战
ls al-arch-soa-zk-1-al-arch-soa-zk-1
ls al-arch-soa-zk-1-al-arch-soa-zk-1|awk '{sub(/^.*[0-9]-/,"");print}'
al-arch-soa-zk-1
二、