Ich bin neu in Awk und Shell-basierte Programmierung. Ich habe eine Reihe von Dateien Name file_0001.dat
, file_0002.dat......file_1000.dat
. Ich möchte die Dateinamen ändern, wie die Zahl, nachdem Datei_ ein Vielfaches von 4 im Vergleich zum vorherigen Dateinamen ist. SO möchte ich ändernEin Skript zum Ändern von Dateinamen
file_0001.dat to file_0004.dat
file_0002.dat to file_0008.dat
und so weiter.
Kann jemand ein einfaches Skript vorschlagen, um es zu tun. Ich habe folgendes versucht, aber ohne Erfolg.
#!/bin/bash
a=$(echo $1 sed -e 's:file_::g' -e 's:.dat::g')
b=$(echo "${a}*4" | bc)
shuf file_${a}.dat > file_${b}.dat
ich Hilfe CNA Sie mit einem Java oder PHP-Skript für diese. Sie müssen zuerst den Ordner durchsuchen und alle Dateinamen behalten, dann den neuen Namen zuordnen und dann von der höchsten zur niedrigsten beginnen. Als ob du vom Niedrigsten gehst - es wird Konflikte geben. Beispiel kann nicht 001 zu 004 umbenennen, wenn es ein 004 von vorher gibt. – tgkprog
@tgkprog - Sieht so aus, als ob er awk/sed/bash benutzen möchte (welche die besseren Werkzeuge für diese Aufgabe sind). – jahroy
Sie sollten eine richtige Antwort wählen, warum? Siehe [faq] – tgkprog