Dateien umbenennen - erste Leerzeichen gegen Unterstrich tauschen

Vom einfachen Programm zum fertigen Debian-Paket, Fragen rund um Programmiersprachen, Scripting und Lizenzierung.
Antworten
tobo
Beiträge: 1990
Registriert: 10.12.2008 10:51:41

Re: Dateien umbenennen - erste Leerzeichen gegen Unterstrich tauschen

Beitrag von tobo » 06.05.2019 21:14:29

Meillo hat geschrieben: ↑ zum Beitrag ↑
06.05.2019 16:33:55
So kann man zweite Leerzeichen im vi ersetzen:

Code: Alles auswählen

s,\( [^ ]*\) ,\1_,
Oder fuer groessere Zahlen, z.B. das vierte Leerzeichen (eine Zahl kleiner in die geschweiften Klammern schreiben):

Code: Alles auswählen

s,\(\( [^ ]*\)\{3\}\) ,\1_,
Ja, das ist hübsch und eigentlich auch die naheliegende Lösung. Man muss halt nur drauf kommen...

Mounty
Beiträge: 244
Registriert: 05.01.2007 21:02:03
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: Hamburg

Re: Dateien umbenennen - erste Leerzeichen gegen Unterstrich tauschen

Beitrag von Mounty » 07.05.2019 12:40:17

Erstmal möchte ich mich bei allen hier recht herzlich bedanken!

Nach einer Nacht drüber schlafen, habe ich festgestellt das (wie so häufig) mein Gehirn für solche Strings/Ausdrücke nicht geschaffen ist. Bei sowas: :%s/\(\zsa.\{-}\)\{2}/b/ bin ich dann total überfordert. Problematisch finde ich auch die vielen unterschiedlichen Tools und (leicht) veränderten Schreibweisen. Das macht das Ganze nicht leichter.

Für mein Problem, habt ihr ja schon ein paar Lösung geschrieben. Die Lösung @halo44 hat den vorteil, das sie noch etwas länger in der Bash-History bleibt und man sie da dann wieder "hervorzaubern" kann.

Diese emv-Sache ist aber auch nicht schlecht, so im Zusammenspiel mit den unterschiedlichsten Editoren. Wobei ich mich frage was ihr alle so am vi/vim findet, vor allem nachdem ich ed ein bischen kennengelernt habe:-)

Gruß
Mounty
>> potato - woody - sarge - etch - lenny - squeeze - wheezy - jessie - stretch - buster - bullseye - [bookworm] --> trixie

Benutzeravatar
Meillo
Moderator
Beiträge: 8813
Registriert: 21.06.2005 14:55:06
Wohnort: Balmora
Kontaktdaten:

Re: Dateien umbenennen - erste Leerzeichen gegen Unterstrich tauschen

Beitrag von Meillo » 07.05.2019 13:43:11

Mounty hat geschrieben: ↑ zum Beitrag ↑
07.05.2019 12:40:17
Nach einer Nacht drüber schlafen, habe ich festgestellt das (wie so häufig) mein Gehirn für solche Strings/Ausdrücke nicht geschaffen ist. Bei sowas: :%s/\(\zsa.\{-}\)\{2}/b/ bin ich dann total überfordert.
Das wundert mich ueberhaupt nicht. ;-) Das geht allen am Anfang so. Bei mir war's genauso. Aber das ist kein Problem von diesen Kommandos, sondern eine Frage von Vertrautheit und der Faehigkeit bei einer Sprache ihre Struktur, Signal und Noise, und Relevanz zu erkennen. Ein Schulanfaenger weiss auch noch nichts von der Relevanz von Satzzeichen oder Wortzwischenraeumen, wo sie fuer uns ganz klar strukturierend sind. Viele Menschen sehen keine Bedeutung wenn sie Programmcode erblicken, aber mit nur wenig Programmiererfahrung kann man schnell zumindest die groben Strukturen erfassen. So ist das auch bei so einem Ausdruck (und den meisten sed-Programmen): Fuer dich ist es nur Zeichensalat, ich dagegen erkenne eine Struktur und dadurch einen Sinn.

Zu diesem Thema will ich gerne auf folgenden Text hinweisen, den ich vor ein paar Jahren mal fuer eine Gruppe von Bibliothekaren verfasst habe: http://marmaro.de/rem/texte/pattern-matching.txt

Problematisch finde ich auch die vielen unterschiedlichen Tools und (leicht) veränderten Schreibweisen. Das macht das Ganze nicht leichter.
Wie war der Spruch von Donald Knuth nochmal: ``Unix is ten kinds of regular expressions living under one roof.'' (oder so aehnlich) Das ist sehr zutreffend, leider, aber halt der Geschichte geschuldet. (Man kann daraus zumindest eine Menge ueber die Herausforderungen von Kompatibilitaet lernen. Wie es ist wenn man es anders macht kann man beim Umstieg von Python 2 auf 3 beobachten.)

Wobei ich mich frage was ihr alle so am vi/vim findet, vor allem nachdem ich ed ein bischen kennengelernt habe:-)
Dann hast du ihn noch nicht genug kennengelernt! ;-)

Kurz gesagt: Der vi ist ein Editor mit dem man ein Leben lang effizienter beim Editieren werden kann. Durch die Moeglichkeit, kleine Editieroperationen zu groesseren zu verbinden, und ueberhaupt durch sein grosses Set an Editiermoeglichkeiten (und seine Offenheit externe Tools einzubeziehen), bietet er eine riesige Menge an Moeglichkeiten, die man noch nach Jahren besser nutzen kann. Und darueber hinaus ist er einer von wenigen Editoren, die mehr Wert auf das Aendern von Text als auf das Schreiben von Text legen. (Ich will nur xp, ddp und ~ erwaehnen.)

... und ed ist fast ;-) so maechtig ... in nur rund 2.500 Zeilen C-Code! Ich finde das schlichtweg beeindruckend.
Use ed once in a while!

Antworten