Ich habe viele Dateien, die wie folgt aussehen:
DET01-ABC-5_50-001.dat
...
DET01-ABC-5_50-0025.dat
und ich möchte, dass sie so aussehen:
DET01-XYZ-5_50-001.dat
...
DET01-XYZ-5_50-0025.dat
Wie kann ich das tun?
Ich habe viele Dateien, die wie folgt aussehen:
DET01-ABC-5_50-001.dat
...
DET01-ABC-5_50-0025.dat
und ich möchte, dass sie so aussehen:
DET01-XYZ-5_50-001.dat
...
DET01-XYZ-5_50-0025.dat
Wie kann ich das tun?
for file in *.dat ; do mv $file ${file//ABC/XYZ} ; done
Non rename
o sed
benötigt. Einfach bash Parametererweiterung .
So etwas wird es tun. Die for
Schleife muss möglicherweise geändert werden, je nachdem, welche Dateinamen Sie erfassen möchten.
for fspec1 in DET01-ABC-5_50-*.dat ; do
fspec2=$(echo ${fspec1} | sed 's/-ABC-/-XYZ-/')
mv ${fspec1} ${fspec2}
done
Sie sollten diese Skripte immer unter folgenden Bedingungen testen Kopien Ihrer Daten, und zwar in völlig unterschiedlichen Verzeichnissen.
Sie müssen lernen, wie man sed benutzt http://unixhelp.ed.ac.uk/CGI/man-cgi?sed
Und auch um for zu verwenden, damit Sie Ihre Dateieinträge in einer Schleife durchgehen können http://www.cyberciti.biz/faq/bash-for-loop/
Ihr Befehl wird in etwa so aussehen, ich habe keinen Begriff neben mir und kann es daher nicht überprüfen
for i in `dir` do mv $i `echo $i | sed '/orig/new/g'`
CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.