Hier werden die Unterschiede zwischen zwei Versionen gezeigt.
Beide Seiten, vorherige Überarbeitung Vorherige Überarbeitung Nächste Überarbeitung | Vorherige Überarbeitung Nächste Überarbeitung Beide Seiten, nächste Überarbeitung | ||
lpi1:textutils [2011/09/06 09:06] ingo_wichmann [sort] |
lpi1:textutils [2015/01/25 18:44] ingo_wichmann [tac] |
||
---|---|---|---|
Zeile 7: | Zeile 7: | ||
===== tac ===== | ===== tac ===== | ||
rpm -qa --last | tac | rpm -qa --last | tac | ||
+ | |||
+ | ===== rev ===== | ||
+ | |||
+ | 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 34: | ||
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 -r /etc/passwd | ||
- | |||
===== uniq ===== | ===== uniq ===== | ||
Zeile 40: | Zeile 46: | ||
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 51: | ||
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 74: | Zeile 76: | ||
</file> | </file> | ||
EOF | EOF | ||
- | |||
- | |||
===== 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 102: | ||
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 113: | ||
===== 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 |