Newsgroup: it.comp.os.unix
Titolo: ordinare file secondo data

Ciao,
ho alcune difficoltà nel realizzare uno script di shell.
quello che dovrebbe fare lo script è ordinare per data un'elenco di file.
ovvero dovrebbe ordinare una lista come la seguente secondo mm, gg, aa, hh,
....
nome file mm gg aa hh
ciao.a  gen 11 2001 20.39
ciao.b  mar 21 2001 19.39
ciao.c  gen 31 2002 20.39
ciao.d  dec 25 2001 21.39
ciao.e  aug 21 2000 20.39
attraverso il comando sort riesco ad ordinare la lista secondo gg, aa e hh,
ma non riesco ad ordinarla secondo i mesi.
Avete un suggerimento da darmi?
Ciao e grazie,
Paplo.

 file.
ls -t ?
-- 
A risentirci
\  Davide G. Borin
\\ !!Scudo anti-spam attivo!! Togliere le x e "eliminami" dall'indirizzo
\\\_____________________________________________________________________


putroppo non è così semplice, perchè devo ordinare anche i file delle
sub-directory, inoltre devo elencare solo i file che nel titolo contengono
la stringa "taldeitali".
ti riporto il testo dell'esercizio completo ...
"Si progetti uno script che prende come parametri il nome di una directory
dir ed una stringa str , e stampa su standard output tutti i file contenuti
in dir e nelle sue sottodirectory (dirette e indirette), il cui nome
contiene la stringa str.
Tali file devono essere stampati in ordine dal più recente al meno recente,
insieme con la relativa data; l'output va organizzato in una tabella. "
Ciao e grazie,
Paplo.


mi devi scusare ma non ho capito esattamente come utilizzare il comando
date.
cmq. riporto anche a te l'intero testo dell'esercizio...


> putroppo non è così semplice, perchè devo ordinare anche i file delle
Infati, una bella sfida:
#!/bin/ksh
BASEDIR=$1
FINDSTR=$2
find $BASEDIR -type f -name "*$FINDSTR*" -exec ls -l {} \;
#fino qui hai l'output (non ordinato) di tutti i file richiesti
#Potresti utilizzare awk per ordinare , pero non è semplice perche a seconda
della "vecchiaia" del file il formato della data cambia. Fails più recenti
di 6 mesi non contengono l'anno - se fosse possibile forzare la data dello
stesso formato per tutti diventerebbe molto più semplice. Qualcuno ha
qualche idea?
ciao a tutti
Camil

Paplo.
In bocca al lupo.
--
Marco Santoro
i...@marcosantoro.it
PGP DSS/DH KeyID 0x0AE1FB7C
Fingerprint 0A C1 05 52 47 9C D5 44 66 11 F2 71 1C E9 E8 E6 0A E1 FB 7C

che ne dite di questa soluzione ....
elenca anche le directory...
ls -lLR $1 --full-time | awk -v stringa=$2 'index($11,stringa) {print $10"
"$7" "$8" "$9" "$11};' | sort -k1,1nr -k2,2Mr -k3,3nr -k4,4dr
ls -lLR $1 --full-time | awk -v stringa=$2 'index($11,stringa) && $1
!~/d/{print $10" "$7" "$8" "$9" "$11};' |
sort -k1,1nr -k2,2Mr -k3,3nr -k4,4dr
cmq. entrambe tengono conto dell'anno!
per far ciň esiste l'opzione --full-time del comando ls
naturalmente i due script non sono frutto della mia intelligenza, ma di un
conoscente.
Ciao,
Paplo.

 per far ciň esiste l'opzione --full-time del comando ls
Mi dispiace deluderti ma in UNIX (penso alle piataforme piů difuse
HP-UX,AIX,Sun Solaris,digital...) questa opzione non esiste,purtropo. In
linux probabilmente esiste per la raggione ovvia. Comunque se si tratta di
un compito stai attento.
ciao
camil


ls -ltr ?
  Ciriciao
    Gio'