To je to, co mají Birei a Thor na mysli:
sed -r "s/([a-z]*-[a-z]*-)([0-9]*-)([a-z]*-)(.*)/\1\n\2\n\3\n\4/"
Výstup:
test-artifact-
201251-
balbal-
0.1-SNAPSHOT.jar
Ke skupinovým výrazům musíte escapovat závorky:
\([a-z]*-[a-z]*-\)\([0-9]*-\)\([a-z]*-\)\([.]*SNAPSHOT.jar\)
A použijte je s \1
, \2
, atd.
UPRAVIT :Všimněte si také těsně před SNAPSHOT
že [.]
nebude odpovídat. Uvnitř závorek .
je doslovné. Mělo by to být [0-9.-]*
v případě těchto běžných řetězců vás awk může zachránit před seskupováním. :)
stačí zadat požadované indexové číslo dílu:
awk 'BEGIN{FS=OFS="-"}{print $1,$2,$5,$6}'
výstup:
kent$ echo "test-artifact-201251-balbal-0.1-SNAPSHOT.jar"|awk 'BEGIN{FS="-";OFS="-"}{print $1,$2,$5,$6}'
test-artifact-0.1-SNAPSHOT.jar