Questo è ciò che significano Birei e Thor:
sed -r "s/([a-z]*-[a-z]*-)([0-9]*-)([a-z]*-)(.*)/\1\n\2\n\3\n\4/"
Uscita:
test-artifact-
201251-
balbal-
0.1-SNAPSHOT.jar
Devi usare l'escape delle parentesi per raggruppare le espressioni:
\([a-z]*-[a-z]*-\)\([0-9]*-\)\([a-z]*-\)\([.]*SNAPSHOT.jar\)
E usali con \1
, \2
, ecc.
MODIFICA :Nota anche poco prima di SNAPSHOT
quel [.]
non corrisponderà. All'interno delle parentesi .
è letterale. Dovrebbe essere [0-9.-]*
infatti per quelle stringhe regolari, awk potrebbe salvarti dal raggruppamento. :)
dai solo il numero di indice della parte che desideri:
awk 'BEGIN{FS=OFS="-"}{print $1,$2,$5,$6}'
uscita:
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