Die Manpage enthält zwei Beispiele:
rename 's/\.bak$//' *.bak
rename 'y/A-Z/a-z/' *
Also ist es entweder s oder y und dann /replaceThis/withThis
Was bedeutet das führende s und y? Gibt es noch andere Möglichkeiten?
Die Manpage enthält zwei Beispiele:
rename 's/\.bak$//' *.bak
rename 'y/A-Z/a-z/' *
Also ist es entweder s oder y und dann /replaceThis/withThis
Was bedeutet das führende s und y? Gibt es noch andere Möglichkeiten?
Antworten:
Im ersten Fall:
rename 's/\.bak$//' *.bak
Sie führen einen regulären Ausdruck für Dateinamen aus und ersetzen den übereinstimmenden Teil der Ausdrücke (.bak am Ende eines Dateinamens) durch den zweiten Ausdruck (der leer ist).
Im zweiten Fall:
rename 'y/A-Z/a-z/' *
Sie stimmen mit dem Musterbereich für reguläre Ausdrücke überein und transliterieren zum Ziel. Mit anderen Worten, der Bereich AZ wird in den Bereich az geändert, wodurch die Dateinamen in Kleinbuchstaben geschrieben werden.
Ich schlage vor, Sie sehen sich die Manpage für sed an, um weitere Befehle und Details zu erhalten. Ich glaube, der Befehl 's' wird am häufigsten verwendet. Auch Regex (Abschnitt 7) und Perl-Dokumentation können hilfreich sein. Hier ist insbesondere ein Tutorial zu Perl und regulären Ausdrücken.
Von man sed
:
s / regexp / replace / Versuchen Sie, Regexp mit dem Musterbereich abzugleichen. Wenn Erfolg Ersetzen Sie den mit dem Ersatz übereinstimmenden Teil. Das Ersatz kann das Sonderzeichen & enthalten, um darauf hinzuweisen Teil des Musterraums, der übereinstimmte, und das Besondere Escapezeichen \ 1 bis \ 9, um auf die entsprechende Übereinstimmung zu verweisen Unterausdrücke im regulären Ausdruck. y / source / dest / Transliterieren Sie die Zeichen im angezeigten Musterbereich in source auf das entsprechende Zeichen in dest.