Ich möchte (innerhalb Bash) eine Liste von Dateien, die mit einer bestimmten Zeichenfolge 'foo' beginnen, mit einer zufälligen Zeichenfolge der nicht angegebenen Länge 'random1' fortsetzen und mit einer anderen bekannten weiter Zeichenfolge 'bar'. Im Wesentlichen von 'foo_random1_bar_random2' möchte ich 'foo_bar_random2'. Ich weiß, wie man bestimmte Zeichenfolgen mit sed entfernt, aber keine Zeichenfolgen unbekannter Länge zwischen bestimmten Zeichenfolgen.Bash Umbenennen von Dateien Entfernen zufälliger Zeichenfolge zwischen bestimmten Zeichenfolgen
0
A
Antwort
2
for i in foo_*_bar_*
do
j=$(echo "$i"|sed -e 's/foo_.*_bar_\(.*\)/foo_bar_\1/')
echo mv "$i" "$j"
done
Dies zeigt eine Liste von mv
Befehle. Sobald Sie mit den Befehlen zufrieden sind, entfernen Sie die echo
vor mv
, damit sie ausgeführt werden.
1
Mit BASH string Ersatz:
f='foo_random1_bar_random2'
echo "${f/*bar/foo_bar}"
PS: Wie pro Kommentar unten, wenn es vor bar
unterstreichen ist dann besser zu nutzen:
echo "${f/*_bar/foo_bar}"
Ausgang:
foo_bar_random2
Verwenden Sie mv
als:
for f in foo_*bar_*; do
mv -i "$f" "${f/*_bar/foo_bar}"
done
1
Wenn Sie das Tool installiert rename
Sie können dies tun,
rename 's/foo_.*_bar/foo_bar/' files
Verwandte Themen
- 1. Bash Regex Dateien umbenennen
- 2. Linux Bash Umbenennen von Dateien
- 3. Batch umbenennen Dateien mit Bash
- 4. Batch umbenennen Dateinamen zwischen Bindestrichen mit bash
- 5. Bash Script: Unterschied zwischen %% und //
- 6. Bash: Dateien rekursiv entfernen
- 7. Entfernen von Zeichenfolgen aus mehreren Dateien
- 8. mehrere Dateien bash in einem Unterverzeichnis umbenennen
- 9. Bash zu Batch umbenennen Dateien mit Zusatznummern
- 10. Bash Entfernen doppelte Zeichenfolge aus der Liste
- 11. entfernen String aus bestimmten Zeichenfolge zu bestimmten Zeichenfolge
- 12. Bash-Skript zum Entfernen aller Dateien und Verzeichnisse außer bestimmten
- 13. Umbenennen von Dateien mit Hinzufügen einer Nummer in bash filename
- 14. Bash Dateien umbenennen von "test.file.1" zu "test file 1"
- 15. Umbenennen und Verschieben von Dateien in Bash oder Perl
- 16. Umbenennen von Dateien über Skript
- 17. erhalten Zeichenfolge zwischen zwei Zeichenfolgen mit JavaScript
- 18. Entfernen Sie Dateien, die zwischen bestimmten Zeitstempeln erstellt wurden.
- 19. Umbenennen von Dateien node.js
- 20. entfernen Sie eine leere Zeichenfolge aus Array von Zeichenfolgen - JQuery
- 21. Batch Umbenennen von Dateien Suffix nach „.csv“ entfernen
- 22. Umbenennen (oder Entfernen von Präfix) mehrere Dateien zu jeder Nummer
- 23. Dateien finden, an Ort und Stelle umbenennen unix bash
- 24. Verzeichnis auflisten und Dateien mit bestimmten Zeichenfolgen im Namen finden
- 25. Ersetzen Zeichenfolge zwischen bestimmten String
- 26. Linux Umbenennen von Dateien als DIRNAME
- 27. FTP Verschieben/Umbenennen/Kopieren von Dateien zwischen den Verzeichnissen
- 28. Zufälliger Text Von jQuery Array
- 29. Suche nach bestimmten Zeichenfolgen und Drucken zwischen bestimmten Zeichenfolgen - Linux Shell Script
- 30. Linux Batch umbenennen Dateien
dies auf foo_random1_bar_randombar2 – mvds
bricht Ich sehe nicht, dass in dem Beispiel OP vorgesehen. Ich werde es anpassen, wenn es eine Möglichkeit wie diese gibt. – anubhava
"Zufällig" scheint ziemlich breite Eingabe für mich ;-) – mvds