Ich habe viele Html-Dateien mit den Namen 12345.html, 12346.html, usw. Ich muss "style.css" in "style-12345.css" oder den entsprechenden Dateinamen ändern. Ich bin mir nicht sicher, welches Tool ich verwenden soll, Empfehlungen?
Antworten
Zu viele Anzeigen?Dies ist ziemlich einfach mit einer for-Schleife und sed möglich:
for i in *.html; do
sed -i "s/style\\.css/style-`basename $i .html`.css/g" $i
done
Die Schleife führt den inneren Befehl mit $i
auf jeden .html-Dateinamen gesetzt. sed -i
ändert die Datei an Ort und Stelle. basename $i .html
erhält $i
ohne die .html
Suffix (d.h. nur die Nummer)
Suchen Sie nach einem Befehl namens rename
. Es gibt sie in zwei Varianten, je nach Ausführung.
En perl
Paket bietet /usr/bin/prename
der reguläre Ausdrücke im Perl-Stil verwendet, um Dateien umzubenennen. Ein Beispiel dafür ist dieser Befehl
$ prename 's/foo/bar/ *foo*
würde in jedem Dateinamen, der "foo" enthält, "foo" in "bar" ändern.
En util-linux
Paket bietet /usr/bin/rename
das zum Umbenennen von Dateien eine einfache Stringsubstitution verwendet. Ein Beispiel ist dieser Befehl
$ rename foo bar *foo*
würde die gleiche Wirkung haben wie die erste.
prename
ist viel leistungsfähiger als die normale rename
aber diese Macht bedeutet, dass sie schwieriger zu benutzen ist.