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).

È stato utile?

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.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top