Hallo, Am Thu, 30 Oct 2014, ?l ??gn?r schrieb:
Textdatei="irgendwas.txt"
Darin befindet sich zB bla blub worte keyword1 bla suchkriterium 'wort1:wort2:wort3:etc' xx blu blo worte keyword1 bla suchkriterium 'wort1:wort2:wort3:etc' yy worte keyword1 bla suchkriterium 'wort1:wort2:wort3:etc' zz was anderes etc
Nun geht es darum in einem Bash-Script den Teil zwischen '' zu ersetzen, wenn in der Zeile das Suchkriterium gefunden wird, wobei das zu Ersetzende in einer Variable gespeichert ist. Der Aufruf des Textes erfolgt über die Variable Textdatei.
awk -vNEU="$neu" "/suchkriterium/{ sub(\"'[^']+'\", \"'neu'\"); print; }" "$TEXTDATEI" Andersrum zu quoten wird noch gruseliger: awk -vNEU="$neu" '/suchkriterium/{ sub("'"'"'[^'"'"']+'"'"'", "'"'"'neu'"'"'"); print; }' "$TEXTDATEI" Einfach hingegen, wenn man den awk-Teil als eigens awk-script oder here-Datei speichert. awk -vNEU="foo" -f- "$TEXTDATEI" <<'EOF' /suchkriterium/{ sub("'[^']+'", "'neu'"); print; } EOF HTH, -dnh -- RAID: Es geht immer genau eine Platte mehr kaputt als durch die Redundanz aufgefangen werden könnte. -- Andreas Dau -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um den Listen Administrator zu erreichen, schicken Sie eine Mail an: opensuse-de+owner@opensuse.org