next | next | up | down | Inhalt | Uebungen | Complete | Kommentar

all, section 3.12.

3.12.  Text ändern

Zersplitten: (csplit)

$ csplit datei '/muster/+3'...    # dritte Zeile nach Muster
$ csplit -k datei 100 {20}        # bis zu 21 mal 100 Zeilen

csplit zerlegt eine Textdatei; die Stücke heißen xx00, xx01, usw. muster oder eine Zeilennummer legt den Anfang der zweiten,... Datei fest. {20} wiederholt das Muster oder die Zeilennummer als Anzahl Zeilen.

Senkrecht zerschneiden: (cut)

$ cut -c1-5,8-10,13- datei      # nach Zeichenpositionen
$ ... | cut -f3- -d:             # : trennt Felder

cut gibt Ausschnitte von Textzeilen aus. Felder sind normalerweise durch Tabulatorzeichen getrennt.

Zusammenfügen: (join)

join hängt sortierte Textzeilen bei gleichem ersten Feld aneinander. Mit Optionen kann man beliebige Felder prüfen und in beliebiger Reihenfolge ausgeben.

$  cat 3.join
a%a:first  line
b%a:second line
c%a:third  line
$ 
$  cat 3.join.b
a%b:first  line
b%b:second line
d%b:third  line

$ join -t% 3.join 3.join.b
a%a:first  line%b:first  line
b%a:second line%b:second line

$ join -t% -o1.2 2.2 3.join 3.join.b
a:first  line%b:first  line
a:second line%b:second line

$ join -t% -o1.2 2.1 3.join 3.join.b
a:first  line%a
a:second line%b

Zusammenfügen: (paste)

$ paste datei...               # Dateien mit Tabulatorzeichen
$ ... | paste -d: datei -...    # Datei und Eingabe mit :
$ ... | paste - -               # Eingabe zweispaltig
$ paste -s -d'\t\n' datei    # sukzessive Zeilen, je
                               # zwei mit Tabulatorzeichen

paste hängt positionsgleiche Zeilen aus verschiedenen Dateien aneinander. Die Zeichenliste bei -d dient dabei zirkulär als Trenner, aber am Schluß ist immer ein Zeilentrenner.

$ paste -d'^' 3.p*
a%a:first  line^a%b:first  line^1
b%a:second line^b%b:second line^2 3 4 9
c%a:third  line^c%b:third  line^6 7 9
^^1 

$ paste -d'^' 3.paste 3.paste.b
a%a:first  line^a%b:first  line
b%a:second line^b%b:second line
c%a:third  line^c%b:third  line

$ paste -d'-----' 3.paste 3.paste.b
a%a:first  line-a%b:first  line
b%a:second line-b%b:second line
c%a:third  line-c%b:third  line

Zerlegen: (split)

$ split -100 datei         # je 100 Zeilen

split zerlegt eine Textdatei in Stücke xab, xab, usw. mit je gleich vielen Zeilen.

Zeichen ersetzen: (tr)

$ tr '[A-Z]' '[a-z]' <ein >aus  # groß in klein
$ tr -d '\15\32' <ein >aus    # löschen: return und control-Z
$ tr -cs '[A-Z][a-z]' '[\12*]' # ein Wort pro Zeile
$ tr -cs '[A-Z][a-z]' '\12'    # ein Wort pro Zeile [Berkeley]

tr ersetzt einzelne Zeichen: Zeichen in erstem Argument durch Zeichen in gleicher Position in zweitem Argument.

-c   komplementiert erstes Argument,
-d   löscht statt zu ersetzen,
-s   gibt vielfache Zeichen im zweiten Argument nur einmal aus.

back | next | up | down | Inhalt | Uebungen | Complete | Kommentar


Created by unroff & hp-tools. © by Hans-Peter Bischof. All Rights Reserved (1997).

Last modified 03/July/97