2009-01-20, 19:41
  #1
Medlem
binics avatar
hur gör jag ett script för att döpa om filerna från det högsta numret och neråt dvs

90.png ändra till 1.png
89.png ändra till 2.png
87.png ändra till 3.png
...
Citera
2009-01-20, 20:44
  #2
Medlem
Citat:
Ursprungligen postat av binic
hur gör jag ett script för att döpa om filerna från det högsta numret och neråt dvs

90.png ändra till 1.png
89.png ändra till 2.png
87.png ändra till 3.png
...

Kod:
x=1; for i in $(ls --color=no|sort -r); do mv "$i" "$x.png"; let x=x+1; done

där har du en one-liner som borde funka, du kan ju testa med att byta ut mv till echo och ta bort situationstecknen
Citera
2009-01-20, 20:58
  #3
Medlem
(ls --color=no|sort -r)
Vad gör detta?
"ls --color=no" listar den allt i terminalen utan färger? är det nödvändigt? sort -r listar 90-89-88 osv märkte jag i manualen.
Förklara gärna vad ls --color=no är nödvändigt för försöker lära mig så mkt som möjligt
Citera
2009-01-20, 21:14
  #4
Medlem
Ödlans avatar
Citat:
Ursprungligen postat av fghj.
Förklara gärna vad

http://unixhelp.ed.ac.uk/CGI/man-cgi?ls eller $ man ls
Citera
2009-01-21, 11:48
  #5
Medlem
Citat:
Ursprungligen postat av fghj.
(ls --color=no|sort -r)
Vad gör detta?
"ls --color=no" listar den allt i terminalen utan färger? är det nödvändigt? sort -r listar 90-89-88 osv märkte jag i manualen.
Förklara gärna vad ls --color=no är nödvändigt för försöker lära mig så mkt som möjligt

det är mest jag som använder det för att inte råka få med skräp ansi tecken när jag kör for-loopar.

Om man tittar på en ls som har color påslaget så kommer filer/directories som har en färgkodning egentligen heta nåt annat än orginal filnamnet eftersom en ansi färgkodning kommer nu följa med i namnet :P
typ ^[0filnamnet.txt istället för filnamnet.txt
(eller hur nu färgkodningen ser ut, kommer aldrig ihåg :P)

Det är inte så vanligt problem men jag har fått lära mig den hårda och väldigt knepiga vägen :P
Citera
2009-01-21, 13:26
  #6
Medlem
Kod:
n=`ls *.png | wc -l`
for i in *.png; do
    mv $i $i.TMP
done
for i in `seq $n`; do
    mv `ls -nr *.png.TMP | sed 1q` $i.png
done
Citera
2009-01-21, 16:07
  #7
Medlem
Nej, ursäkta, det ska förstås vara
Kod:
mv `ls *.png.TMP | sort -nr | sed 1q` $i.png
på näst sista raden.
Citera

Skapa ett konto eller logga in för att kommentera

Du måste vara medlem för att kunna kommentera

Skapa ett konto

Det är enkelt att registrera ett nytt konto

Bli medlem

Logga in

Har du redan ett konto? Logga in här

Logga in