[RISOLTO] Re: Come isolare il timestamp di un file? [ls, cut e num. campi/field]

2019-01-25 Per discussione Ennio-Sr
* compact  [250119, 23:03]:
> In data venerdì 25 gennaio 2019 19:57:49, Ennio-Sr ha scritto:
> > Ciao a tutti,
> > 
> > sto cercando di isolare il timestamp di alcuni file per poter creare una
> > 'condizione' ('if') in uno script di controllo.
> 
> man stat
> 
> stat -c %y file

Oh, ecco un comando che non avevo presente e che si avvicina molto alla
soluzione che cercavo. 
Intanto, da una rapida ricerca e alcuni tentativi, forse ho trovato
proprio quello che cercavo: 

---> $ ls -l C*wav | awk '{ print $8 }'

00:27
17:34
17:35

Grazie di nuovo a tutti gli intervenuti e ... alla prossima ;-)
  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) ]



Re: Come isolare il timestamp di un file? [ls, cut e num. campi/field]

2019-01-25 Per discussione Ennio-Sr
* Felipe Salvador  [250119, 22:28]:
> 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
> 
Ti ringrazio, Felipe, ma la cosa non funziona: il problema è dovuto
proprio agli spazi, che al variare del size dei file sono diversi e
restano tali anche se vengono sostituiti dalla virgola. 

Guarda che succede:
il comando 
: r !ls -l prove/file? | tr -s ' ' ',' | cut -d ',' -f 1-10
in un primo tempo ha dato come risultato:
,52,-rw-r-,1,ennio,ennio,52598,Sep,8,00:27,prove/file1
356,-rw-r-,1,ennio,ennio,363137,Jan,25,17:34,prove/file2
,4,-rw-r-,1,ennio,ennio,2179,Jan,25,17:35,prove/file3

per cui, ripetendo il comando con l'estrazione del campo 9 ottenevo:
8
17:34
25

Ma, fatto strano, nei successivi tentativi il risultato è stato diverso:
-rw-r-,1,ennio,ennio,52598,Sep,8,00:27,prove/file1
-rw-r-,1,ennio,ennio,363137,Jan,25,17:34,prove/file2
-rw-r-,1,ennio,ennio,2179,Jan,25,17:35,prove/file3

e poi:
: r !ls -l prove/file? | tr -s ' ' ',' | cut -d ',' -f 8'
00:27
17:34
17:35

e ancora:
: r !ls -l prove/file? | tr -s ' \t' ',' | cut -d ',' -f 8'
00:27
17:34
17:35

Concludo che il risultato mi sembra alquanto arbitrario e inadatto per
basarci un controllo...

Ciao e grazie, 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) ]



Re: Come isolare il timestamp di un file? [ls, cut e num. campi/field]

2019-01-25 Per discussione Ennio-Sr
* cage  [250119, 22:39]:
> On Fri, Jan 25, 2019 at 07:57:49PM +0100, Ennio-Sr wrote:
> > Ciao a tutti,
> 
> Ciao!
> 
> [...]
> 
> > 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 ;-(
> 
> Non riesco  a centrare il problema  comunque, per quel che  ne so, cut(1)
> usa il tabulatore come separatore di campo di default.
> 

Sì, l'ho letto nel 'man ls' ma, se dò il comando semplicemente con
ls -l ... | cut -f 8
(senza indicare il delimiter di default), mi scrive l'intera stringa, con
tutti i campi, senza isolare il solo timestamp che mi interessa salvare
in una variabile di memoria.

> Ciao!
> C.
Ciao e grazie, 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) ]



Re: Come isolare il timestamp di un file? [ls, cut e num. campi/field]

2019-01-25 Per discussione compact
In data venerdì 25 gennaio 2019 19:57:49, Ennio-Sr ha scritto:
> Ciao a tutti,
> 
> sto cercando di isolare il timestamp di alcuni file per poter creare una
> 'condizione' ('if') in uno script di controllo.

man stat

stat -c %y file



Re: Come isolare il timestamp di un file? [ls, cut e num. campi/field]

2019-01-25 Per discussione Felipe Salvador
On Fri, Jan 25, 2019 at 10:28:12PM +0100, Felipe Salvador wrote:

> 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

Fai attenzione, per effetto di '-s' in ls questo metodo produrrà un
errore in corrispondenza della riga che indica il file più grande:

  1,felipe,felipe,625,nov
  1,felipe,felipe,625,nov
  8,felipe,felipe,4096,gen
  1,felipe,felipe,33453,set
  1,felipe,felipe,1736068,set
  1,felipe,felipe,139,gen
  1,felipe,felipe,141,gen
  1,felipe,felipe,5397088,giu
  felipe,felipe,9462689792,apr,28 <--
  3,felipe,felipe,4096,set

Rimuovendo '-s' il problema non si pone:


   felipe,1736068,set,18,20:12
   felipe,139,gen,21,18:13
   felipe,141,gen,21,15:16
   felipe,5397088,giu,10,2018
   felipe,9462689792,apr,28,2018
   felipe,4096,set,18,18:11

Saluti

-- 
Felipe Salvador



Re: Come isolare il timestamp di un file? [ls, cut e num. campi/field]

2019-01-25 Per discussione cage
On Fri, Jan 25, 2019 at 07:57:49PM +0100, Ennio-Sr wrote:
> Ciao a tutti,

Ciao!

[...]

> 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 ;-(

Non riesco  a centrare il problema  comunque, per quel che  ne so, cut(1)
usa il tabulatore come separatore di campo di default.

Ciao!
C.



Re: Come isolare il timestamp di un file? [ls, cut e num. campi/field]

2019-01-25 Per discussione Felipe Salvador
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



Re: Come isolare il timestamp di un file? [ls, cut e num. campi/field]

2019-01-25 Per discussione Ennio-Sr
* Gollum1  [250119, 21:33]:
> Il 25 gennaio 2019 19:57:49 CET, Ennio-Sr  ha scritto:
> >Ciao a tutti,
> > [big cut]
> 
> e usare uno script in python? le librerie di python mi risulta che 
> considerino il timestamp come dato del file stesso.
> 
> dipende da quello che poi ci devi fare 
> byez
> -- 

Devo salvare il imestamp in una variabile da confrontare con un valore
simile. 
Ma come si farebbe in python?
Grazie, ciao, 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) ]



Re: Come isolare il timestamp di un file? [ls, cut e num. campi/field]

2019-01-25 Per discussione Gollum1
Il 25 gennaio 2019 19:57:49 CET, Ennio-Sr  ha scritto:
>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?
>
>Grazie dell'attenzione, Ennio

e usare uno script in python? le librerie di python mi risulta che considerino 
il timestamp come dato del file stesso.

dipende da quello che poi ci devi fare 
byez
-- 
gollum1

Inviato dal mio dispositivo Android con K-9 Mail. Perdonate la brevità e gli 
errori, maledetto correttore automatico.



Come isolare il timestamp di un file? [ls, cut e num. campi/field]

2019-01-25 Per discussione Ennio-Sr
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?

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