Bash-Befehl zum Entfernen führender Nullen von allen Dateinamen

8

Ich habe ein Verzeichnis mit einer Reihe von Dateien mit Namen wie:

%Vor%

Ich möchte die führenden Nullen von allen Dateinamen entfernen, so dass ich zurücklassen würde:

%Vor%

Ich habe verschiedene Konfigurationen von sed versucht, aber ich kann die richtige Syntax nicht finden. Gibt es eine einfache Möglichkeit, alle Dateien im Verzeichnis aufzulisten, sie durch sed zu leiten und sie entweder ohne die führenden Nullen in den neuen Dateinamen zu verschieben oder zu kopieren?

    
George 15.01.2010, 20:49
quelle

8 Antworten

7
%Vor%     
cyborg 15.01.2010, 20:58
quelle
8

sed allein ist das falsche Werkzeug dafür: Sie müssen auch ein Shell-Skript verwenden.

Umbenennen mehrerer Dateien mit Linux Seite für einige Ideen. Eine der vorgeschlagenen Ideen ist die Verwendung des Skripts rename perl:

%Vor%     
Simon Nickerson 15.01.2010 20:59
quelle
6

In Bash, die wahrscheinlich Ihre Standard-Login-Shell ist, sind keine externen Befehle erforderlich.

%Vor%     
ephemient 15.01.2010 21:43
quelle
1

Verwenden Sie sed , z. B.:

%Vor%

Vollständige Schleife:

%Vor%     
eduffy 15.01.2010 20:52
quelle
0

Ich kenne sed überhaupt nicht, aber Sie können einen Eintrag mit find :

erhalten

find -type f -name *.jpg

Bei der anderen Antwort könnte es so aussehen

find . -type f -name *.jpg | sed -e 's:^0*::'

aber ich weiß nicht, ob dieser sed Befehl hält oder nicht.

    
prodigitalson 15.01.2010 20:57
quelle
0

Hier ist einer, der sed nicht benötigt:

%Vor%

Beachten Sie, dass dies NUR funktioniert, wenn die Dateinamen alle Nummern sind. Sie können auch die führenden Nullen mit der Shell entfernen:

%Vor%     
Kaleb Pederson 15.01.2010 21:17
quelle
0

Vielleicht nicht das eleganteste, aber es wird funktionieren.

%Vor%     
jml3310 15.01.2010 20:57
quelle
0

In der Bash-Shell können Sie Folgendes tun:

%Vor%     
ghostdog74 15.01.2010 23:59
quelle

Tags und Links