Re: Come isolare il timestamp di un file? [ls, cut e num. campi/field]
On Fri, Jan 25, 2019 at 07:57:49PM +0100, Ennio-Sr wrote:
> Ciao a tutti,
>
> sto cercando di isolare il timestamp di alcuni file per poter creare una
> 'condizione' ('if') in uno script di controllo.
> Non avendo mai usato 'awk' ho provato con ls -l e cut, ma il risultato
> sperato viene alterato dagli spazi dei singoli campi, non potendo
> prevedere il campo in cui si collocherà il timestamp del file che mi
> interessa.
>
> Una occhiata alle righe che seguono vale più di cento spiegazioni:
>
> --------------------- quote ---------------------------
>
> Script started on Fri 25 Jan 2019 18:38:14 CET
> mennio@mcmini-4_1-deb:~/prove$ l alias ls
> alias ls='ls -s -F -T 0 -b -H -1 -C --color=auto'
> [il risultato non cambia se uso il comando con la sola opzione -l]
> ennio@mcmini-4_1-deb:~/prove$ ls -l file?
> 52 -rw-r----- 1 ennio ennio 52598 Sep 8 00:27 file1
> 356 -rw-r----- 1 ennio ennio 363137 Jan 25 17:34 file2
> 4 -rw-r----- 1 ennio ennio 2179 Jan 25 17:35 file3
> ennio@mcmini-4_1-deb:~/prove$ ls -l file? | cut -d ' ' -f 1
>
> 356
>
> ennio@mcmini-4_1-deb:~/prove$ Kls -l file? | cut -d ' ' -f 2
> 52
> -rw-r-----
>
> ennio@mcmini-4_1-deb:~/prove$ Kls -l file? | cut -d ' ' -f 3,4,5,6,7
> [...]
>
> ennio@mcmini-4_1-deb:~/prove$ Kls -l file? | cut -d ' ' -f 9
> Sep
> 17:34
>
> ennio@mcmini-4_1-deb:~/prove$ Kls -l file? | cut -d ' ' -f 12
> 00:27
>
> 25
> ennio@mcmini-4_1-deb:~/prove$ Kls -l file? | cut -d ' ' -f 13
> file1
>
> 17:35
> ennio@mcmini-4_1-deb:~/prove$ Kexit
>
> Script done on Fri 25 Jan 2019 18:39:40 CET
>
> ---------------------- unquote ----------------------
>
> Come si vede, la colonna del timestamp corrisponde a campi diversi
> secondo il numero di spazi di ogni riha prodotta da 'ls'.
> Penso che se potessi usare '\t' (TAB) come delimiter potrei ottenere il
> risultato desiderato, ma non mi pare sia possibile ;-(
>
> Avete suggerimenti su come potrei individuare quel dato, magari con awk?
L'output di ls è delimitato da spazi, puoi rimpiazzarli con tr:
ls -l | tr -s ' ' ',' | cut -d ',' -f 4,5,6,7,8
felipe,4096,apr,16,2018
felipe,4096,apr,24,2018
felipe,18432,giu,21,2018
felipe,4096,mag,16,2017
felipe,4096,giu,20,2016
felipe,4096,nov,2,17:22
felipe,4096,lug,7,2018
felipe,97261,giu,10,2018
felipe,101788,giu,10,2018
> Grazie dell'attenzione, Ennio
> --
> [Perche' usare Win$ozz (dico io) se ..."anche uno sciocco sa farlo. \\?//
> Fa' qualche cosa di cui non sei capace!" (diceva Henry Miller) ] (°|°)
> [Why use Win$ozz (I say) if ... "even a fool can do that. )=(
> Do something you aren't good at!" (as Henry Miller used to say) ]
Ciao
--
Felipe Salvador
Reply to: