Reguläre Ausdrücke in Linux Befehl sed

Habe ich eine shell-variable:

all_apk_file="a 1 2.apk x.apk y m.apk"

Möchte ich ersetzen die a 1 2.apk mit TEST, mit dem Befehl:

echo $all_apk_file | sed 's/(.*apk ){1}/TEST/g'

Den .*apk bedeutet Ende mit apk, {1} bedeutet nur eine Zeit, aber es funktioniert nicht; ich habe nur die original-variable, die als Ausgabe: a 1 2.apk x.apk y m.apk

Kann mir jemand sagen warum?

  • Die kurze Antwort ist sed ist gierig. Da setzen Sie .* Sie schnappen die ersten zwei " apk " - Kombinationen als Teil .* und so erkennt nur die letzten apk als die endgültige Kombination.
InformationsquelleAutor Searene | 2012-02-22
Schreibe einen Kommentar