{"id":3214,"date":"2011-08-03T20:23:56","date_gmt":"2011-08-03T18:23:56","guid":{"rendered":"https:\/\/www.gambaru.de\/blog\/?p=3214"},"modified":"2011-08-03T20:23:56","modified_gmt":"2011-08-03T18:23:56","slug":"der-stromeditor-sed-und-ein-kleines-skript-namens-vils","status":"publish","type":"post","link":"https:\/\/gambaru.de\/blog\/2011\/08\/03\/der-stromeditor-sed-und-ein-kleines-skript-namens-vils\/","title":{"rendered":"Der Stromeditor sed und ein kleines Skript namens vils"},"content":{"rendered":"<p>Vor zwei Monaten hatte ich kurz zwei Methoden abseits grafischer Programme vorgestellt, wie man mit Hilfe der Bash und dem Texteditor VIM <a href=\"https:\/\/www.gambaru.de\/blog\/2011\/05\/14\/mehrere-dateien-umbenennen-mit-bash-und-vim\/\">mehrere Dateien umbenennen<\/a> kann. Als ich wenige Wochen sp\u00e4ter mit einem Freund \u00fcber das gleiche Thema sprach und dabei die eher ungew\u00f6hnliche VIM Methode vorstellte, musste ich mir sagen lassen: \"Mit einem Texteditor? Das ist ja umst\u00e4ndlich. Warum hast du nicht sed benutzt?\" \ud83d\ude10 Pah, gibt es denn keine Sonderpunkte mehr f\u00fcr kreative L\u00f6sungen. \ud83d\ude09<br \/>\nMein Ziel mit der Kategorie \"Leben auf der Konsole\" ist weniger, Abhandlungen \u00fcber Programmiersprachen und gute Praxistipps f\u00fcr Systemadministratoren zu schreiben. Ich glaube letztere w\u00fcrden sich sowieso langweilen, w\u00e4hrend andere alle Vorurteile \u00fcber den typischen Linuxnutzer best\u00e4tigt s\u00e4hen. Ich widme dem Ganzen trotzdem gerne ab und zu meine Aufmerksamkeit, weil sehr viele Probleme sich mit Linux auf unterschiedliche Weise schon von Haus aus l\u00f6sen lassen. Au\u00dferdem habe ich mit der Zeit festgestellt, dass einfache L\u00f6sungen, Eleganz und Effektivit\u00e4t sich bei Konsolenanwendungen nicht zwangsl\u00e4ufig ausschlie\u00dfen m\u00fcssen, eher das Gegenteil ist der Fall.<br \/>\nBei <a href=\"http:\/\/www.gnu.org\/s\/sed\/\">GNU sed<\/a> verh\u00e4lt es sich \u00e4hnlich. Es gibt schon tonnenweise gute Informationen im Internet. Als Lekt\u00fcre empfehle ich z.B. <a href=\"http:\/\/www.thomashertweck.de\/sedawk.html\">sed, awk und regul\u00e4re Ausdr\u00fccke<\/a>.<br \/>\nUm das alte Beispiel mit dem Umwandeln von Gro\u00df- in Kleinschreibung aufzugreifen, das l\u00e4sst sich mit sed so l\u00f6sen:<br \/>\n<strong>Als Testlauf<\/strong><\/p>\n<pre class=\"brush:shell\">\nfor DATEI in *.jpg ; do NEUEDATEI=`echo $DATEI | sed -e 's\/(.*)\/L1\/'` ; echo \"$DATEI wird umbenannt in $NEUEDATEI\" ; done<\/pre>\n<p><strong>Und so gehts richtig<\/strong><\/p>\n<pre class=\"brush:shell\">for DATEI in *.jpg ; do NEUEDATEI=`echo $DATEI | sed -e 's\/(.*)\/L1\/'` ; mv \"$DATEI\" $NEUEDATEI ; done<\/pre>\n<p>Mehr Beispiele gibt es auch <a href=\"http:\/\/www.basicallytech.com\/blog\/index.php?\/archives\/10-Shell-stuff-rename-multiple-files-on-the-command-line.html\">hier<\/a> und <a href=\"http:\/\/linuxcommando.blogspot.com\/2008\/05\/how-to-convert-text-files-to-all-upper.html\">hier<\/a>. Wie der letzte Link zeigt, gibt es tats\u00e4chlich mehr als nur eine M\u00f6glichkeit Dateinamen von Gro\u00df- nach Kleinschreibung oder umgekehrt zu \u00e4ndern.<br \/>\nJeder kann nun f\u00fcr sich entscheiden, ob die VIM-Methode oder sed einfacher war. Bei wenigen Dateien verschwende ich auf so etwas sowieso keine Anstrengungen und \u00e4ndere es schnell per Hand. Wenn aber Tausende von Dateien ge\u00e4ndert werden m\u00fcssen, lohnt sich der Blick auf sed und eine simple Schleifenkonstruktion.<br \/>\nIn meinem alten Beitrag hat <a href=\"https:\/\/www.gambaru.de\/blog\/2011\/05\/14\/mehrere-dateien-umbenennen-mit-bash-und-vim\/comment-page-1\/#comment-899\">andre<\/a> noch auf ein kleines Skript namens <a href=\"https:\/\/www.freshports.org\/sysutils\/vils\/\">vils<\/a> hingewiesen, welches es auch direkt f\u00fcr Arch Linux in AUR und f\u00fcr FreeBSD oder direkt als Download zu geben scheint. Ruft man vils auf, werden automatisch alle Dateinamen in einem Verzeichnis im Editor der Wahl angezeigt. Dort k\u00f6nnen sie ver\u00e4ndert werden und werden nach dem Abspeichern im Editor exakt so umbenannt. Das Skript nimmt einem also das <code>ls | vim - <\/code> und das Hinzuf\u00fcgen von Shell Befehlen wie mv innerhalb von vim ab. Leider scheint es nur f\u00fcr die zsh Shell zu funktionieren, ist aber eine praktische Sache, wenn man oft Dateien um\u00e4ndern muss und daf\u00fcr gerne einen vielseitigen Texteditor wie Vim benutzt.<br \/>\nFazit: Es gibt wie so oft immer mehr als eine L\u00f6sung f\u00fcr das gleiche Problem.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Vor zwei Monaten hatte ich kurz zwei Methoden abseits grafischer Programme vorgestellt, wie man mit Hilfe der Bash und dem Texteditor VIM mehrere Dateien umbenennen kann. Als ich wenige Wochen sp\u00e4ter mit einem Freund \u00fcber das gleiche Thema sprach und dabei die eher ungew\u00f6hnliche VIM Methode vorstellte, musste ich mir sagen lassen: &#8222;Mit einem Texteditor? &hellip; <\/p>\n<p class=\"link-more\"><a href=\"https:\/\/gambaru.de\/blog\/2011\/08\/03\/der-stromeditor-sed-und-ein-kleines-skript-namens-vils\/\" class=\"more-link\"><span class=\"screen-reader-text\">\u201eDer Stromeditor sed und ein kleines Skript namens vils\u201c<\/span> weiterlesen<\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[6],"tags":[30,53,177,210,231],"_links":{"self":[{"href":"https:\/\/gambaru.de\/blog\/wp-json\/wp\/v2\/posts\/3214"}],"collection":[{"href":"https:\/\/gambaru.de\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/gambaru.de\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/gambaru.de\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/gambaru.de\/blog\/wp-json\/wp\/v2\/comments?post=3214"}],"version-history":[{"count":0,"href":"https:\/\/gambaru.de\/blog\/wp-json\/wp\/v2\/posts\/3214\/revisions"}],"wp:attachment":[{"href":"https:\/\/gambaru.de\/blog\/wp-json\/wp\/v2\/media?parent=3214"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/gambaru.de\/blog\/wp-json\/wp\/v2\/categories?post=3214"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/gambaru.de\/blog\/wp-json\/wp\/v2\/tags?post=3214"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}