» »

[UNIX-shell] uporaba AWK

[UNIX-shell] uporaba AWK

abrezo ::

V shell programiranju sem razmeroma nov, zato sem se srečal z manjšo težavo.
Primer:imam ukaz
 ls -ld -1 `find . -name "A*" -print` |awk 'NR>1{print "mv ", $8, $8"_"$6"_"$7}'

ki poda naslednji rezultat
mv ./Podatki/Apodatki/A0030053.A98;1 ./Podatki/Apodatki/A0030053.A98;1_2010-03-24_13:49
mv ./Podatki/Apodatki/A0100053.A98;1 ./Podatki/Apodatki/A0100053.A98;1_2010-03-24_13:49
mv ./Podatki/Apodatki/A0130053.A98;1 ./Podatki/Apodatki/A0130053.A98;1_2010-03-24_13:49
mv ./Podatki/Apodatki/A0200053.A98;1 ./Podatki/Apodatki/A0200053.A98;1_2010-03-24_13:49
mv ./Podatki/Apodatki/A0230053.A98;1 ./Podatki/Apodatki/A0230053.A98;1_2010-03-24_13:49
mv ./Podatki/Apodatki/A0300053.A98;1 ./Podatki/Apodatki/A0300053.A98;1_2010-03-24_13:49

Kako lahko uporabim te parametre $8, $7 ..., da jih vzamem v neko funkcijo kjer jim spemenim obliko
npr:
 ls -ld -1 `find . -name "A*" -print` |awk 'NR>1{print "mv ", $8, $(spremeni $8)"_"$6"_"$7}'

Rad bi namreč spremenil PATH, kamor bi premaknil datoteke. Željen rezultat bi tako npr bil.
mv ./Podatki/Apodatki/A0030053.A98;1 ./TESTDIR/A0030053.A98;1_2010-03-24_13:49
mv ./Podatki/Apodatki/A0100053.A98;1 ./TESTDIR/A0100053.A98;1_2010-03-24_13:49
mv ./Podatki/Apodatki/A0130053.A98;1 ./TESTDIR/A0130053.A98;1_2010-03-24_13:49
mv ./Podatki/Apodatki/A0200053.A98;1 ./TESTDIR/A0200053.A98;1_2010-03-24_13:49
mv ./Podatki/Apodatki/A0230053.A98;1 ./TESTDIR/A0230053.A98;1_2010-03-24_13:49
mv ./Podatki/Apodatki/A0300053.A98;1 ./TESTDIR/A0300053.A98;1_2010-03-24_13:49


Hvala!

Popcek ::

Ce pogledas malo man awk, vidis, da imas na razpolago ze nekaj vgrajenih funkcij. Ena izmed njih je "sub",
ki bi jo lahko uporabil v tvojem primeru.

naprimer:

... printf "mv" $8;sub("/Podatki/Apodatki/","/TESTDIR/",$8);print $8"_"....

abrezo ::

Ja, ampak niso zmeraj /Podatki/Apodatki/, so potem še /Podatki/Ypodatki/, /Podatki/20102503/Apodatki/...se pravi niso zmeraj enaki stringi v pogoju...

Tako da če maš (oz kdorkoli) še kakšno idejo, se priporočam.

Popcek ::

Ja na zalost nimam 6. cuta, da bi natancno vedel kaj ti zelis...oziroma kasno strukturo poddirektorijev imas.
Upam, da si ze slisala za REGEX...(prej se jih zakapiras prej mas lepse zivljenje).

Drgac pa mal vec napis....resitev je mnogo....


Vredno ogleda ...

TemaSporočilaOglediZadnje sporočilo
TemaSporočilaOglediZadnje sporočilo
»

excel (preverjanje istih/e besed/e v celicah)

Oddelek: Pomoč in nasveti
6829 (757) prtenjam
»

Finska (izkušnje)

Oddelek: Loža
235485 (3752) _dragon_
»

programiranje krožek(pomoč)

Oddelek: Pomoč in nasveti
442767 (1755) Marat
»

Ukrajinci zaprli priljubljeno stran s torrenti

Oddelek: Novice / Avtorsko pravo
4815733 (12835) kitaj
»

Wal-mart prenosniki

Oddelek: Novice / Ostale najave
273308 (3308) moj_nick

Več podobnih tem