Ich habe eine zufällige Anzahl von Dateien mit Namen wie:Generierung systematische inkrementelle nummerierte Dateinamen in Bash
id_1000.txt
id_2000.txt
id_3000.txt
id_4000.txt
Beachten Sie, dass die Anzahl der .txt
Dateien in verschiedenen Verzeichnissen variiert. Zum Beispiel kann ein Verzeichnis nur eine id_1000.txt
(mindestens) enthalten oder eine beliebige Anzahl von Dateien mit einer höheren Anzahl von Ziffern enthalten.
Um die Zufallszahl von Dateinamen in systematischer inkrementeller Zahl zu konvertieren, habe ich in einem Batch-Skript folgende Skript:
setlocal enabledelayedexpansion
set /a count=1
for /f "tokens=*" %%a in ('dir /b /od *.txt') do (
echo ren "%%a" "id_!count!.txt"
set /a count+=1
)
Der Ausgang für die obige Eingabe wäre:
ren "id_1000.txt" "id_1.txt"
ren "id_2000.txt" "id_2.txt"
ren "id_3000.txt" "id_3.txt"
ren "id_4000.txt" "id_4.txt"
Er erkennt zuerst die Anzahl der id_*.txt
Dateien, die sich im aktuellen Verzeichnis befinden, und wechselt dann zu der höheren Nummer mit der normalen Zählreihenfolge: 1, 2, 3, 4 usw. und echo eine Zeile.
Obwohl ich versuchte, nach alternativen Befehlen für Ubuntu zu suchen, konnte ich kein befriedigendes Ergebnis finden.
Ich bin sehr neu in der Linux-Shell, jede Hilfe in dieser Angelegenheit wird geschätzt.
Dank
Der von Ihnen bereitgestellte Beispielcode ist jedoch Batch-Programmierung. Sie möchten diesen Anwendungsfall auf einer Linux/Unix-basierten Maschine oder auf einer Windows-Maschine ausführen? – Inian
Ich möchte es in bash konvertieren. Ich arbeitete vorher in Windows-Maschine, aber curently Migration zu Linux –