[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

OT: AWK und SED



Hallo debian-user-german Leser und Leserinnen,

derzeit komme ich öfters in Versuchung, mit SED und AWK zu "spielen".
Im Moment möchte ich folgendes erreichen:

Ich habe eine Datei welche drei Spalten hat. Der Trenner ist ein
Komma. Die erste Spalte möchte ich nun bearbeiten, ohne das die zweite
und dritte Spalte beachtet wird. In der Ersten Spalte soll, sofern
vorkommt, der Punkt in ein Leerzeichen umgewandelt und die ersten
Buchstaben in Großbuchstaben umgewandelt werden.

Das Umwandeln mit SED würde ja mit "\u" funktionieren. Da ich aber in
der ersten Spalte manchmal ein Wort, manchmal zwei und manchmal
vielleicht auch drei Wörter habe, kann ich Sed nicht sagen, wie oft es
den Buchstaben pro Zeile umwandeln soll. Auch die Geschichte mit dem
Punkt liegt ähnlich, in manchen Spalten gibt es einen, in manchen zwei
oder auch drei. Ich möchte also nur die erste Spalte bearbeiten, am
Ende aber alle drei Spalten in einer Datei haben.

Daher kam die Idee mit AWK, welches ja, sofern ich es richtig
verstanden habe, für Spalten gerade zu ideal sein soll. Nur habe ich
es noch nicht geschafft, eine "Suchen und Ersetzen" Funktion auf
die erste Spalte anzuwenden. In der manpage habe ich etwas von sub und
gsub gelesen, sind das hier die nötigen Optionen/Funktionen?

Mit "-F" muss ich ja erst den Trenner angeben, damit AWK weiß,
welches die Spalten sind:

$ awk -F "," '{ sub (...,"$1) }' datei

Wäre das erst einmal der richtige Aufbau?Wobei ... = ein Regulärer
Ausdruck für die Suche sein muss und dann das zu ersetzende Muster
folgt: sub (regex,ersatz,$spalte)?

Bei Sed sehe ich ja immer, welche Auswirkungen der Befehl gebracht
hat, bei AWK muss ich wohl für das Ergebnis "print" nutzen?

Hätte evtl. jmd. bitte ein Beispiel was das ganze noch ein wenig erklärt?
-- 
Viele Grüße Sebastian
ICQ: 264706583 | MSM: sebo@blinzeln.de | Skype: sebo_de | Yahoo: de_sebo
E-Mail: sebo@blinzeln.de | Web: www.blindzeln.de


Reply to: