Hier werden die Unterschiede zwischen zwei Versionen gezeigt.
| Beide Seiten, vorherige Überarbeitung Vorherige Überarbeitung Nächste Überarbeitung | Vorherige Überarbeitung | ||
|
lpi1:textutils [2011/09/06 09:06] ingo_wichmann [sort] |
lpi1:textutils [2015/07/21 12:05] (aktuell) ingo_wichmann [sort] |
||
|---|---|---|---|
| Zeile 7: | Zeile 7: | ||
| ===== tac ===== | ===== tac ===== | ||
| rpm -qa --last | tac | rpm -qa --last | tac | ||
| + | |||
| + | ===== rev ===== | ||
| + | //''rev'' steht nicht in den LPI101 Lernzielen// | ||
| + | |||
| + | echo regal | rev | ||
| + | ''rev'' zweifach verwenden, um Text am Ende zu entfernen, obwohl ''cut'' allein das nicht kann: | ||
| + | echo test | rev | cut -c 2- | rev | ||
| ===== nl ===== | ===== nl ===== | ||
| Zeile 28: | Zeile 35: | ||
| du -mx / | sort -n | du -mx / | sort -n | ||
| (( in aktuellen Distributionen auch: | (( in aktuellen Distributionen auch: | ||
| - | du -hx / | sort -h )) | + | du -hx / | sort -h |
| + | )) | ||
| Benutzer nach Benutzernummer sortiert ausgeben: | Benutzer nach Benutzernummer sortiert ausgeben: | ||
| - | sort -t : -k 3n -r /etc/passwd | + | sort -t : -k 3n /etc/passwd |
| ===== uniq ===== | ===== uniq ===== | ||
| Zeile 40: | Zeile 47: | ||
| Welcher Benutzer hat wie viele Prozesse laufen: | Welcher Benutzer hat wie viele Prozesse laufen: | ||
| ps -e --no-headers -o user | sort | uniq -c | ps -e --no-headers -o user | sort | uniq -c | ||
| - | |||
| - | |||
| ===== expand ===== | ===== expand ===== | ||
| Zeile 47: | Zeile 52: | ||
| tr : "\t" < /etc/passwd | cat -T | tr : "\t" < /etc/passwd | cat -T | ||
| tr : "\t" < /etc/passwd | expand -t 15,17,23,29,60,80 | tr : "\t" < /etc/passwd | expand -t 15,17,23,29,60,80 | ||
| - | |||
| - | |||
| ===== unexpand ===== | ===== unexpand ===== | ||
| Zeile 75: | Zeile 78: | ||
| EOF | EOF | ||
| + | ===== column ===== | ||
| + | //''column'' steht nicht in den LPI101 Lernzielen// | ||
| + | ip r | column -t | ||
| ===== fmt ===== | ===== fmt ===== | ||
| - | |||
| wget -q -O - www.gnu.org/licenses/gpl-3.0.txt | fmt -w 40 | wget -q -O - www.gnu.org/licenses/gpl-3.0.txt | fmt -w 40 | ||
| + | ===== od ===== | ||
| + | ''/tmp/od'' : | ||
| + | <file> | ||
| + | müsli | ||
| + | </file> | ||
| + | |||
| + | od -a /tmp/od | ||
| ===== pr ===== | ===== pr ===== | ||
| wget -q -O - www.gnu.org/licenses/gpl-3.0.txt | pr | wget -q -O - www.gnu.org/licenses/gpl-3.0.txt | pr | ||
| - | |||
| - | |||
| - | |||
| - | |||
| - | |||
| ===== join ===== | ===== join ===== | ||
| Zeile 101: | Zeile 107: | ||
| Alternative: | Alternative: | ||
| perl -F: -ane 'BEGIN {$GROUPFILE=shift; open GROUPFILE; %h=map {(split /:/)[2,0]} <GROUPFILE> }; print "$F[0]: $h{$F[3]}\n"' /etc/group /etc/passwd | perl -F: -ane 'BEGIN {$GROUPFILE=shift; open GROUPFILE; %h=map {(split /:/)[2,0]} <GROUPFILE> }; print "$F[0]: $h{$F[3]}\n"' /etc/group /etc/passwd | ||
| - | |||
| - | |||
| ===== head ===== | ===== head ===== | ||
| Zeile 114: | Zeile 118: | ||
| ===== wc ===== | ===== wc ===== | ||
| wget -q -O - www.gnu.org/licenses/gpl-3.0.txt | wc | wget -q -O - www.gnu.org/licenses/gpl-3.0.txt | wc | ||
| - | |||
| ===== sed ===== | ===== sed ===== | ||
| + | ==== Zeichen vertauschen ==== | ||
| a und b vertauschen: | a und b vertauschen: | ||
| sed y/ab/ba/ /etc/hosts | sed y/ab/ba/ /etc/hosts | ||
| - | subnetz ersetzen: | + | ==== Zeichenkette ersetzen ==== |
| + | Subnetz ersetzen: | ||
| sed -i s/192.168/10.0/g /etc/hosts | sed -i s/192.168/10.0/g /etc/hosts | ||
| - | Verzeichnisweit ersetzen: | + | ==== Zeilen entfernen ==== |
| - | find -type f -name "*.c" -exec sed -i s/bla/blub/ {} \; | + | Benutzer nutzer22 aus ''/etc/passwd'' entfernen: |
| - | + | ||
| - | Benutzer nutzer22 aus /etc/passwd entfernen: | + | |
| sed -e '/^nutzer22/d' /etc/passwd | sed -e '/^nutzer22/d' /etc/passwd | ||
| + | ==== Links ==== | ||
| + | * http://sed.sourceforge.net/sed1line.txt | ||
| ===== tr ===== | ===== tr ===== | ||
| tr abc xyz < /etc/hosts | tr abc xyz < /etc/hosts | ||