(Noch) Mehr Spaß in der Shell mit moreutils

Published on 26.08.2010
Published in linux

Ich möchte ein bisschen Werbung für das Paket moreutils machen, welches im Community-Repo von Arch Linux verfügbar ist und zumindest in meinem Umfeld weitgehend Unbekannt ist. Moreutils ist eine Sammlung von kleinen, nützlichen Programmen, die in der Standard-Toolchain fehlen.

Zwei aus meiner Sicht besonders nützliche Tools sind sponge und vipe. Jeder der schon einmal z.B. mit grep eine Datei bearbeiten wollte und das Ergebnis dann gleich wieder in der gleichen Datei speichern wollte, wird sponge mögen. Sponge ließt Daten die ihm über eine Pipe übergeben werden und "saugt" diese in sich auf, um sie, wenn der Datenstrom aufhört in eine Datei zu schreiben. Nun können wir statt Konstrukte wie:

grep ... file > file

zu verwenden, die eine leere Datei erzeugen, sponge verwenden:

grep ... file | sponge file

Vipe ist ein Programm, dass sich zwischen eine Pipe klemmt und dort den in \$EDITOR angeben Editor startet. Mit diesem kann man dann die Daten bearbeiten, bevor sie weitergeleitet werden. Auch hier ein kleines Anwendungsbeispiel. Wir wollen uns einen Hexeditor aus xxd, vipe und sponge bauen. Dazu können wir mit xxd einen Hexdump erstellen und diesen mit vipe bearbeiten, das Ergebniss mit xxd -r wieder zurückwandeln und mit sponge speichern:

xxd file | vipe | xxd -r | sponge file

Es gibt noch mehr interessante Tools, wie vidir, mit dem man Ordner mit dem bevorzugten Texteditor erstellen, bearbeiten oder löschen kann. Auch sehr nützlich ist pee, das ähnlich wie tee funktioniert, jedoch für pipes funktioniert.

Ich habe jedenfalls viel Spaß mit moreutils! Ich hoffe ihr habt etwas neues kennen gelernt und habt damit genauso viel Spaß wie ich :)

Leave a Reply

Comments

Kommentare für diesen Eintrag als RSS Feed
bwalle on 26.08.2010 wrote Reply

Cooler Tipp! Leider gehören die moreutils nicht zum Standardumfang einer Linuxinstallation, so dass man sowas nicht in Shellskripten verwenden kann sondern nur in interaktiven Shells.

Cancel