Das meinen Birei und Thor:
sed -r "s/([a-z]*-[a-z]*-)([0-9]*-)([a-z]*-)(.*)/\1\n\2\n\3\n\4/"
Ausgabe:
test-artifact-
201251-
balbal-
0.1-SNAPSHOT.jar
Sie müssen Klammern maskieren, um Ausdrücke zu gruppieren:
\([a-z]*-[a-z]*-\)\([0-9]*-\)\([a-z]*-\)\([.]*SNAPSHOT.jar\)
Und verwenden Sie sie mit \1
, \2
usw.
BEARBEITEN :Beachten Sie auch kurz vor SNAPSHOT
dass [.]
wird nicht passen. Innerhalb von Klammern .
ist wörtlich. Es sollte [0-9.-]*
sein
Tatsächlich könnte awk für diese regulären Zeichenfolgen das Gruppieren ersparen. :)
Geben Sie einfach die gewünschte Teileindexnummer ein:
awk 'BEGIN{FS=OFS="-"}{print $1,$2,$5,$6}'
Ausgabe:
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