![](https://seccdn.libravatar.org/avatar/363424a7062b0e7a90527600f3760d46.jpg?s=120&d=mm&r=g)
Hallo, Am Die, 16 Jan 2007, Andre Tann schrieb:
mir liegt eine Texttabelle vor mit mehreren Spalten, getrennt mit Tab. Den Wert der dritten Spalte möchte ich gerne mit " umschließen. Die Spalten davor und danach sollen bleiben wie sie sind.
Aus
Spalte1 Spalte2 Spalte3 Spalte4
soll also werden
Spalte1 Spalte2 "Spalte3" Spalte4
Wie kann ich das anstellen?
Mit evtl. Verdopplung der '"': awk -F'\t' 'BEGIN { OFS="\t"; } { $3="\"" $3 "\""; print; }' oder awk -F'\t' 'BEGIN { OFS="\t"; } { sub(/.*/, "\"\&\"", $3); print; }' ohne: awk -F'\t' 'BEGIN { OFS="\t"; } { sub(/^\"?/, "\"", $3); sub(/\"?$/, "\"", $3); print; }' Mit sed geht's natürlich auch, aber umständlich, weil man die Felder (wie in Andreas' perl-Vorschlag) selber trennen muß. Mit perl (ohne evtl. '"'-Verdopplung): perl -an -F'\t' -e ' $F[2] =~ s/^"?/"/; $F[2] =~ s/"?$/"/; print join("\t", @F);' oder perl -an -F'\t' -e ' $F[2] =~ s/^"?(.*?)"?$/"$1"/; print join("\t", @F);' Zu -a und -F -> man perlrun, da ist auch ein Beispiel und wie man's per Hand macht[1]. Viel Spass ;) -dnh [1] Tip: perl -MO=Deparse -an -F'\t' -e '...' -- 99: EDV Experimentelle Daten Verarbeitung (Andreas Frackowiak) -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: opensuse-de+help@opensuse.org