---
Prozium - The great nepenthe. Opiate of our masses. Glue of our great society. Salve and salvation, it has delivered us from pathos, from sorrow, the deepest chasms of melancholy and hate
1
| while (i=`ls -al`); do echo date +D% $i; done |
1
2
3
4
5
| date +D% date +D% date +D% date +D% date +D% |
en met teruggaan naar een basic commando:
1
| while (i=`ls --full-time`); do echo $i; done |
[ Voor 27% gewijzigd door Spider.007 op 25-07-2003 12:34 ]
---
Prozium - The great nepenthe. Opiate of our masses. Glue of our great society. Salve and salvation, it has delivered us from pathos, from sorrow, the deepest chasms of melancholy and hate
Ik begrijp het niet. Dat is toch juiost wat je wil? Datums in de vorm van yyy-mm-dd (dus: 2003-07-25) kan je juist veel beter sorteren dan dd-mm-yyy (dus: 25-07-2003)maar ik kan deze niet sorteren omdat de datum in het long format is...
Als je een rijtje van de laatste hebt zal 31-01-1980 altijd [b]na[b] 01-01-2003 sorteren omdat de 3 groter is dan de 0.
Volgens mij ligt het ook heel erg aan de versie van ls die je hebt. Ik heb verise 5.0 en als ik jouw statement uit de uitvoer is alles OK. Welke versie van ls gebruik jij?code:
1ls -o --full-time -R|awk '{ print $5,$6,$7,$8,$9 }'|sort
dat klopt; met long bedoelde ik Mar 23 2003jeroene schreef op 25 July 2003 @ 12:56:
[...]
Ik begrijp het niet. Dat is toch juiost wat je wil? Datums in de vorm van yyy-mm-dd (dus: 2003-07-25) kan je juist veel beter sorteren dan dd-mm-yyy (dus: 25-07-2003)
dat is wel raar... Ik heb hier versie ls (fileutils) 4.1 te pakken. zal het daaraan liggen? Of zit ik soms in de verkeerde shell?Als je een rijtje van de laatste hebt zal 31-01-1980 altijd [b]na[b] 01-01-2003 sorteren omdat de 3 groter is dan de 0.
[...]
Volgens mij ligt het ook heel erg aan de versie van ls die je hebt. Ik heb verise 5.0 en als ik jouw statement uit de uitvoer is alles OK. Welke versie van ls gebruik jij?
---
Prozium - The great nepenthe. Opiate of our masses. Glue of our great society. Salve and salvation, it has delivered us from pathos, from sorrow, the deepest chasms of melancholy and hate
De shell zal niet zoveel uitmaken, maar de versie van ls wel. Je kan een nieuwere versie installerendat is wel raar... Ik heb hier versie ls (fileutils) 4.1 te pakken. zal het daaraan liggen? Of zit ik soms in de verkeerde shell?
Als je perl hebt kan je ook hier examples downloaden. In die tarball zit veel perl code, maar jij bent op zoek naar de file "lst" uit "ch09". Die kan precies doen wat jij wil
PS "date" gebruik je om de datum van je systeem te zetten en niet om de datum van een bestand op te vragen. Daarom werkt jouw(of die van Negotiator?) idee met date dus niet.
[ Voor 18% gewijzigd door JeroenE op 25-07-2003 13:39 ]
Ik zal eens gaan kijken; bedankt voor de link. Overigens gebruik ik date om een conversie te doen; en dat werkt perfect hoorjeroene schreef op 25 July 2003 @ 13:38:
[...]
De shell zal niet zoveel uitmaken, maar de versie van ls wel. Je kan een nieuwere versie installeren
Als je perl hebt kan je ook hier examples downloaden. In die tarball zit veel perl code, maar jij bent op zoek naar de file "lst" uit "ch09". Die kan precies doen wat jij wil
PS "date" gebruik je om de datum van je systeem te zetten en niet om de datum van een bestand op te vragen. Daarom werkt jouw(of die van Negotiator?) idee met date dus niet.
1
| date -d 'May 20 2003' +'%Y %m %d' |
---
Prozium - The great nepenthe. Opiate of our masses. Glue of our great society. Salve and salvation, it has delivered us from pathos, from sorrow, the deepest chasms of melancholy and hate
Ja, dat werkt ook goed. Maar in je post was je bezig een lijstje te doorlopen met bestanden en dan "date +D% $i" te doen. Dat werkt dus niet.Overigens gebruik ik date om een conversie te doen; en dat werkt perfect hoor
Een lijst doorlopen in bash doe je ook niet met while, maar met for:
1
| for i in `ls -al`; do echo $i; done |
wat ik dus zou kunnen doen is
1
| for i in `ls -o --full-time -R|awk '{ print $6_$7_$8_$9 }'`; do date +'%Y %m %d' -d <echo $i|sed -e '/_/ /'; done |
---
Prozium - The great nepenthe. Opiate of our masses. Glue of our great society. Salve and salvation, it has delivered us from pathos, from sorrow, the deepest chasms of melancholy and hate
Die for moet je sowieso niet gebruiken, omdat het splitsen op spaties niet is wat je wil. Er zijn nog wel meer problemen: hoe krijg je de omzetting met date goed zonder je filename te verliezen bijvoorbeeld.Ok, dat is ook nog wel op te lossen; maar ik heb het idee dat ik dan te ver ga...
Iets wat ik in eerste instantie over het hoofd had gezien is dat je met het ls commando geen dirs in je filename hebt staan. Het is wel leuk om te weten dat filexy7824q.txt het laatst gewijzigd is, maar als je niet weet in welke dir die staat dan moet je dat weer gaan opzoeken.
Dat zorgde er wel voor dat ik een inval kreeg. Waarom laat je find niet gewoon alle bestanden zoeken en de datum erbij printen?
1
| find . -printf "%TY-%Tm-%Td %p\n"|sort |
Dit is exact wat ik zoekjeroene schreef op 25 juli 2003 @ 22:55:
[...]
Die for moet je sowieso niet gebruiken, omdat het splitsen op spaties niet is wat je wil. Er zijn nog wel meer problemen: hoe krijg je de omzetting met date goed zonder je filename te verliezen bijvoorbeeld.
Iets wat ik in eerste instantie over het hoofd had gezien is dat je met het ls commando geen dirs in je filename hebt staan. Het is wel leuk om te weten dat filexy7824q.txt het laatst gewijzigd is, maar als je niet weet in welke dir die staat dan moet je dat weer gaan opzoeken.
Dat zorgde er wel voor dat ik een inval kreeg. Waarom laat je find niet gewoon alle bestanden zoeken en de datum erbij printen?code:In de manpage van find kan je vinden welke andere %-vars je kan gebruiken als je bijvoorbeeld ook de accesstime wil zien, of de grootte van de file, etc.
1 find . -printf "%TY-%Tm-%Td %p\n"|sort
---
Prozium - The great nepenthe. Opiate of our masses. Glue of our great society. Salve and salvation, it has delivered us from pathos, from sorrow, the deepest chasms of melancholy and hate