Textverarbeitung auf der Console
Anzeige von Dateien
cat
& tac
-
Texte zusammenfassen:
cat file1.txt file2.txt file3.txt > file_compiled.txt
-
Ausgabe mit Zeilennummern (
-n
) und mit allen Steuerzeichen (-A
: LF, CR, TAB, …):cat -n -A file.txt
-
Ausgabe mit Zeilennummern ohne Leerzeilen (
-b
), dabei doppelte Leerzeilen zusammenfassen (-s
):cat -b -s file.txt
-
tac
istcat
in rückwärts
Anfang und Ende von Dateien
head
& tail
-
Die ersten und letzten 10 Zeilen:
head -n 10 file.txt tail -n 10 file.txt
-
Die ersten 32 Kilobyte:
head -c32k file.txt
-
Das Ende von
/var/log/messages
, bleibt offen und aktualisert, sobald was neues geloggt wird:tail -f /var/log/messages
-
Alle Zeilen ab Zeile 23:
tail -n +23 file.txt
Zeichen ersetzen
tr
-
Kleinbuchstaben durch Großbuchstaben ersetzen:
tr a-z A-Z < input > output
-
Alle ‘Nichtbuchstaben’ durch Leerzeichen ersetzen:
tr -c A-Za-z ' ' < input > output
-
Mehrere Leerzeilen zu einer zusammenfassen:
tr -s '\n' < input > output
Tabs/Spaces konvertieren
expand
& unexpand
-
expand konvertiert Tabs zu Leerzeichen
-
unexpand konvertiert Leerzeichen zu Tabs
-
Konvertiere Tabs zu vier Leerzeichen:
expand -t 4 input > output
Strings abschneiden und formatieren
fmt
& pr
-
Ausgabe ab Zeichen 45 Umbrechen:
fmt -w 42 file.txt
-
Einrückungen am Zeilenanfang beibehalten (CrownMargin):
fmt -w 42 -c file.txt
-
Spalten (-2) formatieren:
fmt -w 23 input.txt | pr -2 -o 3
Zeilen nummerieren und zählen
nl
& wc
Zeilen nummerieren (per Default alle nichtleeren Zeilen):
nl -b a -i 10 -w 5 input.txt
nl -n rz -v 1000 quellcode.cpp
nl | |
---|---|
-b | Bodyzeilen |
-i | Increment (um 10) |
-w | Breite der Nummernspalte |
-n | rz Rechtsbündig |
-v | Beginne mit Zeilennummer |
Anzahl der Zeilen der Ausgabe von ls – Sprich: Wieviele Dateien liegen in /home?:
ls /home | wc -l
Daten in Hex und Oktal
hexdump
& od
-
Ocatal Dump:
od -txcz /etc/passwd
od -td -An -N1 /dev/random
-
Verbrennt die Hexe! Gib 64 Byte aus (
-n
), zeige Zeichen (-C
):hexdump -n 64 -C /bin/ls
Text abschneiden und verkleben
cut
, paste
& join
cut
- Jedes Zeichen ist eine Spalte, Feldtrenner ist per default \t
,
gibt Zeilen ohne Trennzeichen komplett aus.
-
Spalten 1-3,5,10 mit Trennzeichen
:
:cut -d: -f 1-3,5,10 file.txt
paste
- klebt Daten Zeilenweise zusammen, Feldtrenner ist per default
\t
paste -s
- Durchläuft die Dateien hintereinander
Alle Zeilen der ersten Datei werden in eine Zeile geschrieben, mit Tab separiert, dann das gleiche mit der nächsten Datei in die nächste Zeile
join
- Daten relativ zusammenfüren
vereinigt 2 Dateien auf Basis eines Vereinigungsfeldes Vereinigungsfeld muss per Default das erste Feld einer Zeile sein:
join -t: -1 3 -2 5 file1.txt file2.txt
Text sortieren und aussortieren
sort
& uniq
Default ist lektographisch nach ASCII (Abhängig von der Ländereinstellung der Console) Kann auch ‘Felder’ sortieren, der Feldtrenner ist dann im Default ein Leerzeichen
Lokale Nutzer nach Spalte 4 Sortieren:
sort -t: -k4,4 /etc/passswd
sort | |
---|---|
-r | Absteigend sortieren (reverse) |
-u | unique (Siehe unten, uniq) |
-n | Nummerisch sortieren |
-b | ignore leading blanks |
-t | Trennzeichen |
-k | Sortiere nach Feld (zwischen den Zeichen von ‘-t’) |
Doppelte Zeilen entfernen (Die Eingabe muss sortiert sein):
sort file.txt | uniq
sort -u file.txt
last update: 2024-01-28 17:42:17 +0100