Ein Skript zum Ändern von Dateinamen

8

Ich bin neu in awk und Shell-basierter Programmierung. Ich habe eine Reihe von Dateien namens 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 ändern

%Vor%

und so weiter.

Kann jemand ein einfaches Skript vorschlagen, um es zu tun? Ich habe folgendes versucht, aber ohne Erfolg.

%Vor%     
user3720427 08.06.2014, 20:13
quelle

6 Antworten

2

Dieses Skript wird diesen Trick für Sie tun:

%Vor%

Dateien vorher:

  

file_0001.dat file_0002.dat

Dateien nach der ersten Ausführung:

  

file_0004.dat file_0008.dat

Dateien nach der zweiten Ausführung:

  

Datei_0016.dat Datei_0032.dat

    
Jacek Sokolowski 08.06.2014 20:32
quelle
1

Hier ist eine reine Bash-Methode (ohne bc, umbenennen oder sed).

%Vor%

Um es zu testen, können Sie

tun %Vor%     
Conner 08.06.2014 22:02
quelle
1

Verwenden von bash / sed / find:

%Vor%     
perreal 09.06.2014 03:13
quelle
1

ls -r1 | awk -F '[_.]' '{printf "%s %s_%04d.%s\n", ls -r1, , 4*, }' | xargs -n2 mv

  1. file_0002.dat listet die Datei in umgekehrter Reihenfolge auf, um Konflikte zu vermeiden
  2. Der zweite Teil erzeugt einen neuen Dateinamen. Zum Beispiel: file_0002.dat file_0008.dat wird xargs -n2
  3. mv übergibt jedes Mal zwei Argumente an %code%
Hongbo Liu 09.06.2014 03:17
quelle
1

Dies könnte für Sie funktionieren:

%Vor%     
potong 09.06.2014 07:41
quelle
-1

Das kann helfen:

%Vor%     
klerk 08.06.2014 20:41
quelle

Tags und Links