![]() |
![]() |
|
![]() |
![]() |
|
Programmierung Rat & Tat für Programmierer |
![]() |
|
Themen-Optionen | Ansicht |
![]() |
#1 |
Hero
![]() Registriert seit: 29.12.1999
Beiträge: 819
|
![]() Eine AWK-Frage.
Ich bin mir sicher, ich hab' exakt das hier beschriebene schon einmal gemacht, doch kann ich mich beim besten Willen nicht mehr daran erinnern! Ich bin wohl ein wenig eingerostet was AWK anbelangt.... ![]() Ich habe eine Datei deren Dateiname im Format 2006-02-16 xxxxxx.yyy ist. Ich möchte nun mit AWK den Dateinamen ändern, und zwar so, dass das Format dann so ausschaut: 060216 xxxxxx.yyy Im Prinzip also nur die "-" beim Datum entfernen und das Jahr zwei- statt vierstellig. Das habe ich codiert in AWK: { filename = FILENAME; jahr = substr(filename,3,2); monat = substr(filename,6,2); tag = substr(filename,9,2); newdatum = jahr "" monat "" tag; topic = substr(filename,11); newfilename = newdatum "" topic; print (newdatum); print (topic); print (newfilename); } Die Variable "newfilename" enthält exakt den Namen, den die Datei danach haben soll. Nur wie umbenennen. Ich erinnere mich dunkel, dass man sowas in die END {} - Schleife hineingeschrieben hat..... Wer weiss Rat? |
![]() |
![]() |
![]() |
#2 |
Hero
![]() Registriert seit: 29.12.1999
Beiträge: 819
|
![]() hmmm, jetzt antworte ich auf mein eigenes posting....
![]() hier die problemlösung, der vollständigkeit halber und falls es interessiert: 'ls > directory_inhalt' ...erzeugt eine datei "directory_inhalt" mit den filenamen 'awk -f awk_datei.awk directory_inhalt > mv_datei' ...erzeugt mit der .awk-datei (siehe unten) eine datei "mv_datei" mit der ich das umbenennen per shell-aufruf erledigen kann 'chmod 777 mv_datei' ...ausführbar machen 'sh mv_datei' ...aufruf im ausgangsverzeichnis ändert die dateinamen wie gewünscht kompliziert zwar, aber es funkt! ![]() wenn wer eine einfachere lösung hierzu hat: nur zu! hier noch die .awk-datei: { jahr = substr($0,3,2); monat = substr($0,6,2); tag = substr($0,9,2); newdatum = jahr "" monat "" tag; topic = substr($0,11); newfilename = newdatum "" topic; print "mv","\"" $0 "\"", "\"" newfilename "\""; } |
![]() |
![]() |
![]() |
Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1) | |
|
|