Du bist nicht angemeldet.

#1 26.08.2010 13:54:24

pSub
Mitglied

(Noch) Mehr Spaß in der Shell mit moreutils

Ich möchte ein bisschen Werbung für das Paket moreutils [1] machen, welches im Community-Repo 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 sed 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:

sed ... file > file

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

sed ... 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  smile


[1] http://joey.kitenet.net/code/moreutils/

Beitrag geändert von pSub (26.08.2010 13:55:49)

Offline

#2 26.08.2010 14:02:46

Bomb@
Mitglied

Re: (Noch) Mehr Spaß in der Shell mit moreutils

Olla,

also Vipe hört sich sehr interessant an!

Aber bei Pee versteh ich die Aussage nicht von wg. für Pipes funktioniert. Was meinst du damit?

Grüßle

Offline

#3 26.08.2010 14:15:33

runiq
Mitglied

Re: (Noch) Mehr Spaß in der Shell mit moreutils

pSub schrieb:

Jeder der schon einmal z.B. mit sed 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.

Die moreutils sind klasse, aber das, was du mit sponge anstellst, kann man auch mit sed -i erreichen, wenn ich das Ganze nicht falsch verstehe.

Offline

#4 26.08.2010 14:34:44

bernarcher
Mitglied

Re: (Noch) Mehr Spaß in der Shell mit moreutils

Danke für den Tipp! Ich hatte diese Tools früher schonmal in meinem LFS-System, konnte mich aber partout nicht mehr darauf besinnen, wie die Tools hießen und woher ich sie bekommen hatte.

(So eine Art Senilität bei fortgeschrittenem Alter, nehme ich an. sad )

Offline

#5 26.08.2010 15:08:34

pSub
Mitglied

Re: (Noch) Mehr Spaß in der Shell mit moreutils

Bomb@ schrieb:

Aber bei Pee versteh ich die Aussage nicht von wg. für Pipes funktioniert. Was meinst du damit?

Pee leitet eine Pipe an mehrere Programm weiter. Ein einfaches beispiel

echo "Hello World" | pee cat cat

leitet "Hello World" an beide Instanzen von cat weiter. Mehr Beispiele findest du auf serverfault.com [1].

[1] http://serverfault.com/questions/96245/ … reutils-do


runiq schrieb:

Die moreutils sind klasse, aber das, was du mit sponge anstellst, kann man auch mit sed -i erreichen, wenn ich das Ganze nicht falsch verstehe.

Du hast Recht! Keine Ahnung warum ich da sed hingeschrieben habe, eigentlich sollte da sowas wie grep -ve 'pattern' file stehen. Wobei man das natürlich auch mit sed lösen könnte.

Offline

#6 27.08.2010 09:03:50

stefanhusmann
Moderator

Re: (Noch) Mehr Spaß in der Shell mit moreutils

Die -i option ist aber m.W. eine gnu-Erweiterung. Klassische sed-Implementierungen können sowas nicht, und da kann dann wieder sponge ins Spiel kommen.

Offline

#7 27.08.2010 09:27:50

piet
Mitglied

Re: (Noch) Mehr Spaß in der Shell mit moreutils

stefanhusmann schrieb:

Die -i option ist aber m.W. eine gnu-Erweiterung. Klassische sed-Implementierungen können sowas nicht, und da kann dann wieder sponge ins Spiel kommen.

Kann sein, man hat aber bei beidem (GNU sed oder moreutils) das selbe Problem. Ist es installiert super, wenn nicht dann nachholen, also überprüfen musst du es bei der Verwendung von beiden Werkzeugen. wink

cu

Offline

Schnellantwort auf dieses Thema

Schreibe deinen Beitrag und versende ihn
Deine Antwort

Fußzeile des Forums