cat file1 ...
macht nichts weiter als alle angegebenen Dateien nach
stdout auszugeben.
Per Ausgabeumleitung
kann man so mehrere Dateien zu einer einzigen aneinanderfügen. Siehe auch
paste.
head -25 filename
listet die ersten 25 Zeilen von filename,
tail die letzten 25.
tail hat jedoch noch eine andere Funktionsmöglichkeit:
man kann damit Veränderungen einer Datei überwachen (Option -f).
D.h. alle paar Sekunden wird nachgesehen ob etwas an die Datei angefügt
wurde und falls ja der neue Text ausgegeben. Siehe auch
xtail, für weitergehende Möglichkeiten.
wc filename
zählt Zeilen, Wörter und Buchstaben in der Datei
"filename". Mit den Optionen -l, -w und -c
kann man auch nur ein Ding zählen lassen.
cut
arbeitet zeilenweise und holt aus jeder Zeile der Datei
eine bestimmte Spalte heraus. Spalten können wortweise
(Wörter getrennt durch ein angebbares Zeichen) oder
buchstabenweise definiert werden. Man kann auch
Bereiche von Spalten angeben.
colrm a b
ist das Gegenstück zu cut und kann die Spalten a bis
b einer Datei entfernen. Es ist jedoch nur auf Sun/BSD
vorhanden und primitiver als cut, da sich das
Trennzeichen zwischen den Spalten nicht frei definieren läßt.
grep, egrep, fgrep pattern filename
(klassischer grep, extended grep, fast grep) suchen aus
einer Datei alle Zeilen heraus, in denen ein Muster
pattern vorkommt. Je nach grep-Version darf dieses
Muster unterschiedlich komplex sein: fgrep kann nur
einfache Strings, grep kann begrenzte regular expressions,
wie sie auch in ed (bzw.
vi) implementiert
sind, egrep ist nicht eingeschränkt. Am schnellsten ist
in der Regel übrigens egrep.
Bei den Suchmustern ist zu beachten, daß diese nicht
wie die von der
csh konstuiert werden, sondern
richtige "regular expressions" sind, wie sie z.B. in
der Vorlesung Automatentheorie I definiert werden. Nach einer
beliebigen Zeichenkette sucht man also nicht mit "*"
sondern mit ".*" Beispiele dazu in man
egrep.
sort filename
sortiert die Zeilen einer Datei nach einer gewünschten
Reihenfolge. Das ist per Default von links nach rechts
in einer Zeile der ASCII Zeichensatz. Man kann aber
auch nach bestimmten Spalten oder numerisch sortieren.
Beispiel: Die Passwortdatei
in umgekehrter Reihenfolge nach den uids sortieren:
ypcat passwd | sort -t: +2 -3 -n -r | less
tr string1 string2
< input > output
liest stdin und
ersetzt darin alle Vorkommen von Zeichen aus string1 durch die
korrespondierenden in string2. Dabei sind begrenzt auch reguläre
Ausdrücke, z.B. Bereichsangaben a-z, möglich. Beispiele sind in der manpage;
man beachte die Unterschiedliche Semantik zwischen SunOS und System-V.
expand
und unexpand können eine Datei die mit Tabulatoren
formatiert ist, d.h. durch Verwendung der TAB-Taste
(das macht der vi sehr gerne),
von den Tabs befreien oder umgekehrt. Dies empfiehlt sich z.B. vor dem
Ausdrucken einer Datei, da der
Drucker die Tabs garantiert anders interpretiert als der
Editor, und die Datei
gedruckt dann furchtbar aussieht.
paste
ist quasi das Gegenstück zu cat,
mit dem man mehrere Dateien hintereinander setzen kann. paste
setzt die zwei Dateien nebeneinander, d.h. es wird immer je eine
Zeile aus beiden angegebenen Dateien genommen und die
beiden mit einem TAB dazwischen ausgegben.
uniq
entfernt im Normalfall direkt aufeinanderfolgende identische
Wiederholungen von Zeilen einer Datei. Möchte man
alle Zeilen einer Datei, die identisch sind reduziert
haben, muß man sie vorher mit sort sortieren! Per
Option kann man sich auch nur die wiederholten Zeilen
ausgeben lassen, oder nur die nicht wiederholten.
diff file1 file2
Gibt aus, was man an file1 ändern muß, um es identisch
mit file2 zu machen. Gelistet werden also alle
Zeilen in denen sich die Dateien unterscheiden oder die
weggelassen oder hinzugekommen sind. Dazu wird bei der
Ausgabe am Anfang jeder Zeile mit einem "<" bzw. ">"
markiert ob eine Zeile in file1 an der angegebenen
Zeilennummer gelöscht oder hinzugefügt werden muß.
Es gibt ein Kommando patch
das eine diff-Ausgabe verwenden kann um aus file1
ein file2 zu konstruieren.
cmp file1 file2
Eine reduzierte Version von diff, besser geeignet für
Binärdateien: Gibt nur die erste Stelle
von file1 aus, wo sie sich von file2 unterscheidet.
awk
ist ein sehr mächtiges Programm, mit dem man eine
Datei nach bestimmten Mustern durchsuchen kann (nicht
nur per pattern matching) und auf den gefundenen Zeilen
Funktionen durchführen kann. Dies dient im wesentlichen
dazu, bestimmte Teile aus einer komplexen Eingabedatei
herauszuholen. Die Steuerung kann bei einfachen
Problemen über die Kommandozeile erfolgen, es gibt
jedoch eine ganze awk-Sprache und man kann ein Programm
schreiben, das die Bearbeitung einer Datei steuert.
perl
perl
ist eine Alternative für den, dem die bis jetzt
genannten Kommandos noch zu schwach sind. Perl ist eine
Programmiersprache, die die Fähigkeiten von C und
Shell-Script vereint,
und dabei die Einfachheit von BASIC bietet. Empfehlenswert für alle
komplexeren Probleme der Textverarbeitung. Die meisten unserer Scripten
für die Administration sind in Perl geschrieben.
Näheres dazu unter man perl (200kB)
oder dem Perl-Archiv der
Universität von Florida und der
Perl-Hypertext-Manpage
(aus UK).