KornShell script per ottenere il file più recente per un dato giorno [chiusa]
Domanda
Ho una lista di file da ultimi 7 giorni. Da questo elenco, se ci sono più file in un determinato giorno, ho bisogno di ottenere il più recente per quel giorno utilizzando uno script KornShell (ksh).
Soluzione
Qualcosa sulla falsariga di:
newest=""
for f in $filelist ; do
if [ "$f" -nt "$newest" ] ; then
newest="$f"
fi
done
Altri suggerimenti
È possibile utilizzare il seguente script:
ls -LT | egrep '^ ([^] + +) {} 5 febbraio 2009 3' | head -n 1
Ma se siete su Solaris, / bin / egrep e / usr / bin / egrep non supportano {} caratteri. Credo che il comportamento non è secondo gli standard. In ogni caso, in Solaris, è possibile utilizzare:
ls -LT | / Usr / XPG4 / bin / egrep '^ ([^] + +) {} 5 febbraio 2009 3' | head -n 1 | head -n 1
o
ls -LT | tr -s '' | egrep '^ [^] + [^] + [^] + [^] + [^] + 3 febbraio 2009' | head -n 1
Si potrebbe anche usare ls e sed. Ma in Solaris, non credo che supporti sed regexp esteso.
Naturalmente, sostituire febbraio 2009 3 con la data che si desidera. Non dimenticare il '+' dopo lo spazio.