-
Rinominare file col CygoloneScritto daNon Autenticatoil 2012-11-05 20:49:41.0 alle 2012-11-05 20:49:41.0Ho una cartella piena di file tipo XYZW.MTS. Per rinominarli in XYZW.MTS.mp4 in modo che il televisore li veda, come devo fare?
mv *.MTS %1.MTS.mp4 ???-
Re: Rinominare file col CygoloneScritto da:
> Ho una cartella piena di file tipo XYZW.MTS. Per rinominarli in XYZW.MTS.mp4 in modo che il televisore li veda, come devo fare?
>
> mv *.MTS %1.MTS.mp4 ???
for f in $(ls) ; do mv $f $f.mp4 ; done ; unset fYoung professional woman and busy mom.-
Re: Rinominare file col CygoloneScritto daavvelentaniCubicolarioil 2012-11-05 20:56:24.0 alle 2012-11-05 20:56:24.0Trollate totali: 18184I think happiness is love
- Vladimir Putin-
Re: Rinominare file col CygoloneScritto da: avvelentani
> Scritto da: ::1
>
> > for f in $(ls)
>
>

>
uff
find -print0 | xargs -0 -i mv {} {}.mp4
contento?Young professional woman and busy mom.-
Re: Rinominare file col CygoloneScritto daNon Autenticatoil 2012-11-05 21:06:47.0 alle 2012-11-05 21:06:47.0> > Scritto da: ::1
> >
> > > for f in $(ls)
> >
> >

> >
>
> uff
> find -print0 | xargs -0 -i mv {} {}.mp4
> contento?
Adesso sono consufo, perché a sassofono non è piaciuto il for? è sbagliato?
-
Re: Rinominare file col CygoloneScritto da:
> > > Scritto da: ::1
> > >
> > > > for f in $(ls)
> > >
> > >

> > >
> >
> > uff
> > find -print0 | xargs -0 -i mv {} {}.mp4
> > contento?
>
> Adesso sono consufo, perché a sassofono non è piaciuto il for? è sbagliato?
>
Perché:
1) se hai un alias per ls il tuo output potrebbe incasinare il ciclo: ad esempio io ho un alias che contiene -l, in quel caso farei un casino, ma si rimedia usando $(env ls) invece di $(ls)
2) gli spazi nei nomi dei files sarebbero diventati un problema: la seconda versione termina i nomi dei files con un NUL byte e non ha problemi con gli spazi, anche se forse andrebbe quotato il comando, ovvero mv "{}" "{}.mp4", non mi ricordo se è necessario
3) la seconda versione usa le pipe e il concetto di filtro applicato concatenando i due programmi, tuttavia l'uso di xargs vanifica comunque il tutto spawnando un mv per ogni file quindi non vedo vantaggi
Aspetto il commento sarrusofonico.Young professional woman and busy mom.-
Re: Rinominare file col CygoloneScritto da: ::1
> anche se forse andrebbe quotato il comando, ovvero mv "{}" "{}.mp4", non mi ricordo se è necessario
Ho provato: non è necessario quotare.Young professional woman and busy mom.
-
Re: Rinominare file col CygoloneScritto daNon Autenticatoil 2012-11-05 21:20:06.0 alle 2012-11-05 21:20:06.0> > > > > for f in $(ls)
> > > >
> > > >

> > > >
> > >
> > > uff
> > > find -print0 | xargs -0 -i mv {} {}.mp4
> > > contento?
> >
> > Adesso sono consufo, perché a sassofono non è piaciuto il for? è sbagliato?
> >
>
> Perché:
> 1) se hai un alias per ls il tuo output potrebbe incasinare il ciclo: ad esempio io ho un alias che contiene -l, in quel caso farei un casino, ma si rimedia usando $(env ls) invece di $(ls)
> 2) gli spazi nei nomi dei files sarebbero diventati un problema: la seconda versione termina i nomi dei files con un NUL byte e non ha problemi con gli spazi, anche se forse andrebbe quotato il comando, ovvero mv "{}" "{}.mp4", non mi ricordo se è necessario
> 3) la seconda versione usa le pipe e il concetto di filtro applicato concatenando i due programmi, tuttavia l'uso di xargs vanifica comunque il tutto spawnando un mv per ogni file quindi non vedo vantaggi
> Aspetto il commento sarrusofonico.
Online ho trovato questo:
for filename in *foo*; do mv "$filename" "${filename//foo/bar}"; done
ma a questo punto non proverei neanche per sogno senza prima aver studiato la Bibbia del bash
Archivierò mentalmente la questione nelle Cose Troppo Complicate Da Fare.
-
Re: Rinominare file col CygoloneScritto daavvelentaniCubicolarioil 2012-11-05 21:30:20.0 alle 2012-11-05 21:30:20.0Trollate totali: 18184Scritto da: ::1
> Scritto da:
> > > > Scritto da: ::1
> > > >
> > > > > for f in $(ls)
> > > >
> > > >

> > > >
> > >
> > > uff
> > > find -print0 | xargs -0 -i mv {} {}.mp4
> > > contento?
> >
> > Adesso sono consufo, perché a sassofono non è piaciuto il for? è sbagliato?
> >
>
> Perché:
> 1) se hai un alias per ls il tuo output potrebbe incasinare il ciclo: ad esempio io ho un alias che contiene -l, in quel caso farei un casino, ma si rimedia usando $(env ls) invece di $(ls)
> 2) gli spazi nei nomi dei files sarebbero diventati un problema: la seconda versione termina i nomi dei files con un NUL byte e non ha problemi con gli spazi, anche se forse andrebbe quotato il comando, ovvero mv "{}" "{}.mp4", non mi ricordo se è necessario
> 3) la seconda versione usa le pipe e il concetto di filtro applicato concatenando i due programmi, tuttavia l'uso di xargs vanifica comunque il tutto spawnando un mv per ogni file quindi non vedo vantaggi
> Aspetto il commento sarrusofonico.
ls e` un programma che serve a visualizzare la lista dei file, il suo output e` imprevedibile e imparsabile, non e` solo un fatto di alias. Usato in quel modo la shell prende il suo output, lo splitta usando $IFS (se non e` settato il default e` qualunque spazio) e esegue il corpo del loop su ogni elemento.
Anche se ci fosse un modo di farlo funzionare sarebbe stupido perche' puoi farti dare la lista di file dalla shell:for i in *; do blah blah; done
find fa una cosa diversa perche' e` ricorsivo, usare xargs non e` necessario, find ha l'opzione -exec se usi questa opzione -print0 non serve:find -exec blah blah \;
Infine l'opzione -i di xargs e` deprecata.I think happiness is love
- Vladimir Putin-
Re: Rinominare file col CygoloneScritto da: avvelentani
> Scritto da: ::1
> > Scritto da:
> > > > > Scritto da: ::1
> > > > >
> > > > > > for f in $(ls)
> > > > >
> > > > >

> > > > >
> > > >
> > > > uff
> > > > find -print0 | xargs -0 -i mv {} {}.mp4
> > > > contento?
> > >
> > > Adesso sono consufo, perché a sassofono non è piaciuto il for? è sbagliato?
> > >
> >
> > Perché:
> > 1) se hai un alias per ls il tuo output potrebbe incasinare il ciclo: ad esempio io ho un alias che contiene -l, in quel caso farei un casino, ma si rimedia usando $(env ls) invece di $(ls)
> > 2) gli spazi nei nomi dei files sarebbero diventati un problema: la seconda versione termina i nomi dei files con un NUL byte e non ha problemi con gli spazi, anche se forse andrebbe quotato il comando, ovvero mv "{}" "{}.mp4", non mi ricordo se è necessario
> > 3) la seconda versione usa le pipe e il concetto di filtro applicato concatenando i due programmi, tuttavia l'uso di xargs vanifica comunque il tutto spawnando un mv per ogni file quindi non vedo vantaggi
> > Aspetto il commento sarrusofonico.
>
> ls e` un programma che serve a visualizzare la lista dei file, il suo output e` imprevedibile e imparsabile, non e` solo un fatto di alias. Usato in quel modo la shell prende il suo output, lo splitta usando $IFS (se non e` settato il default e` qualunque spazio) e esegue il corpo del loop su ogni elemento.
>
> Anche se ci fosse un modo di farlo funzionare sarebbe stupido perche' puoi farti dare la lista di file dalla shell:
>
>> for i in *; do blah blah; done
>
> find fa una cosa diversa perche' e` ricorsivo, usare xargs non e` necessario, find ha l'opzione -exec se usi questa opzione -print0 non serve:
>
>> find -exec blah blah \; >
>
> Infine l'opzione -i di xargs e` deprecata.
quindi la risposta definitiva è:find -type f -exec mv {} {}.mp4 \;
Young professional woman and busy mom.-
Re: Rinominare file col CygoloneScritto daavvelentaniCubicolarioil 2012-11-05 21:37:34.0 alle 2012-11-05 21:37:34.0Trollate totali: 18184for i in *; do mv $i $i.mp4; done
**Modificato dall'autore il 05.11.2012 21:46**I think happiness is love
- Vladimir Putin-
Re: Rinominare file col Cygolone[code]proott
toh, un bug.
Edit: fixato.
**Modificato dall'autore il 05.11.2012 21:50**Young professional woman and busy mom.
-
Re: Rinominare file col CygoloneScritto daNon Autenticatoil 2012-11-05 22:39:31.0 alle 2012-11-05 22:39:31.0> for i in *; do mv $i $i.mp4; done
Allora, ho preparato una cartella di prova con il seguente contenuto:
----------+ 1 pc None 8 5 nov 22.23 0000.MTS
----------+ 1 pc None 8 5 nov 22.23 0001.MTS
----------+ 1 pc None 8 5 nov 22.24 0002.MTS
----------+ 1 pc None 8 5 nov 22.24 0003.MTS
-rw-r--r--+ 1 pc None 0 5 nov 22.31 content.txt
----------+ 1 pc None 11 5 nov 22.25 DSC1234.jpg
----------+ 1 pc None 11 5 nov 22.26 DSC5678.jpg
----------+ 1 pc None 11 5 nov 22.26 DSC9876.jpg
----------+ 1 pc None 16 5 nov 22.29 Hōla Mattiä.JPEG
----------+ 1 pc None 15 5 nov 22.27 pippo pluto.MTS
----------+ 1 pc None 0 5 nov 22.24 spazi nel nome.txt
for i in * considera tutti i file
for i in ?SC* considera le tre immagini DSC*
ma esattamente for cosa fa?
perché occorre do?
Come dic Giambo, funzionerebbe anche con milioni di file?-
Re: Rinominare file col CygoloneScritto da:
> > for i in *; do mv $i $i.mp4; done
>
> Allora, ho preparato una cartella di prova con il seguente contenuto:
>
> ----------+ 1 pc None 8 5 nov 22.23 0000.MTS
> ----------+ 1 pc None 8 5 nov 22.23 0001.MTS
> ----------+ 1 pc None 8 5 nov 22.24 0002.MTS
> ----------+ 1 pc None 8 5 nov 22.24 0003.MTS
> -rw-r--r--+ 1 pc None 0 5 nov 22.31 content.txt
> ----------+ 1 pc None 11 5 nov 22.25 DSC1234.jpg
> ----------+ 1 pc None 11 5 nov 22.26 DSC5678.jpg
> ----------+ 1 pc None 11 5 nov 22.26 DSC9876.jpg
> ----------+ 1 pc None 16 5 nov 22.29 Hōla Mattiä.JPEG
> ----------+ 1 pc None 15 5 nov 22.27 pippo pluto.MTS
> ----------+ 1 pc None 0 5 nov 22.24 spazi nel nome.txt
>
> for i in * considera tutti i file
> for i in ?SC* considera le tre immagini DSC*
> ma esattamente for cosa fa?
>
> perché occorre do?
>
> Come dic Giambo, funzionerebbe anche con milioni di file?
il costrutto è:for VARIABILE in LISTA; do echo "elemento corrente: -> $VARIABILE" ISTRUZIONE ALTRA ISTRUZIONE done
oppure in oneliner:
for VARIABILE in LISTA; do ISTRUZIONE; done
Quello che fa è iterare sugli elementi di LISTA, che può contenere qualunque cosa e rende a disposizione la variabile $VARIABILE (col dollaro per ottenerne il valore) all'interno dell'iterazione.
Usare l'asterisco vuol dire generare una lista sfruttando il globbing della shell, per fare un esempio digita "echo *" e vedrai l'elenco dei files.
Il globbing dovresti conoscerlo bene, funziona similmente a quello di windows (? <- un carattere qualsiasi, * <- 1-n caratteri qualsiasi).
Con milioni di files muore, mentre find no.
Con degli spazi nel nome l'asterisco non muore (ad ogni iterazione $VARIABILE conterrà il nome del file corrente) ma dovrai quotare coi doppi apici (es: mv "$VARIABILE" "$VARIABILE.mp4").
Appunto sul quoting: i doppi apici consentono la sostituzione del valore, mentre gli apici singoli no.
Per esempio prova a eseguire questi due comandi:echo "$PWD" echo '$PWD'
e nel secondo caso non vedrai il valore ma esattamente il testo contenuto tra i quotes.Young professional woman and busy mom.-
Re: Rinominare file col CygoloneScritto daNon Autenticatoil 2012-11-05 23:16:03.0 alle 2012-11-05 23:16:03.0> > > for i in *; do mv $i $i.mp4; done
> >
> > Allora, ho preparato una cartella di prova con il seguente contenuto:
> >
> > ----------+ 1 pc None 8 5 nov 22.23 0000.MTS
> > ----------+ 1 pc None 8 5 nov 22.23 0001.MTS
> > ----------+ 1 pc None 8 5 nov 22.24 0002.MTS
> > ----------+ 1 pc None 8 5 nov 22.24 0003.MTS
> > -rw-r--r--+ 1 pc None 0 5 nov 22.31 content.txt
> > ----------+ 1 pc None 11 5 nov 22.25 DSC1234.jpg
> > ----------+ 1 pc None 11 5 nov 22.26 DSC5678.jpg
> > ----------+ 1 pc None 11 5 nov 22.26 DSC9876.jpg
> > ----------+ 1 pc None 16 5 nov 22.29 Hōla Mattiä.JPEG
> > ----------+ 1 pc None 15 5 nov 22.27 pippo pluto.MTS
> > ----------+ 1 pc None 0 5 nov 22.24 spazi nel nome.txt
> >
> > for i in * considera tutti i file
> > for i in ?SC* considera le tre immagini DSC*
> > ma esattamente for cosa fa?
> >
> > perché occorre do?
> >
> > Come dic Giambo, funzionerebbe anche con milioni di file?
>
> il costrutto è:
>> for VARIABILE in LISTA; do > echo "elemento corrente: -> $VARIABILE" > ISTRUZIONE > ALTRA ISTRUZIONE > done >
>
> oppure in oneliner:
> for VARIABILE in LISTA; do ISTRUZIONE; done
Capito, do fa parte del costrutto.
> Quello che fa è iterare sugli elementi di LISTA, che può contenere qualunque cosa e rende a disposizione la variabile $VARIABILE (col dollaro per ottenerne il valore) all'interno dell'iterazione.
>
> Usare l'asterisco vuol dire generare una lista sfruttando il globbing della shell, per fare un esempio digita "echo *" e vedrai l'elenco dei files.
> Il globbing dovresti conoscerlo bene, funziona similmente a quello di windows (? <- un carattere qualsiasi, * <- 1-n caratteri qualsiasi).
Il glob lo conosco, ma pensavo fosse una semplice sintassi tipo un regexp semplificato, non sapevo che generi di per sé una lista e mi chiedevo se a generarla fosse for.
> Con milioni di files muore, mentre find no.
> Con degli spazi nel nome l'asterisco non muore (ad ogni iterazione $VARIABILE conterrà il nome del file corrente) ma dovrai quotare coi doppi apici (es: mv "$VARIABILE" "$VARIABILE.mp4").
Non capisco qui il ruolo delle virgolette, l'esempio di sassofono non le ha e * non dovrebbe dare il nome anche se ha spazi?
> Appunto sul quoting: i doppi apici consentono la sostituzione del valore, mentre gli apici singoli no.
> Per esempio prova a eseguire questi due comandi:
>> echo "$PWD" > echo '$PWD' >
> e nel secondo caso non vedrai il valore ma esattamente il testo contenuto tra i quotes.
Come in PHP.-
Re: Rinominare file col CygoloneScritto daNon Autenticatoil 2012-11-05 23:22:45.0 alle 2012-11-05 23:22:45.0> > Con degli spazi nel nome l'asterisco non muore (ad ogni iterazione $VARIABILE conterrà il nome del file corrente) ma dovrai quotare coi doppi apici (es: mv "$VARIABILE" "$VARIABILE.mp4").
>
> Non capisco qui il ruolo delle virgolette, l'esempio di sassofono non le ha e * non dovrebbe dare il nome anche se ha spazi?
Ad esempio
for i in *; do echo - $i -; done
dà
- 0000.MTS -
- 0001.MTS -
- 0002.MTS -
- 0003.MTS -
- content.txt -
- DSC1234.jpg -
- DSC5678.jpg -
- DSC9876.jpg -
- Hōla Mattiä.JPEG -
- pippo pluto.MTS -
- spazi nel nome.txt -
e
for i in *; do echo "- $i -"; done
la stessa cosa.-
Re: Rinominare file col CygoloneScritto da:
> > > Con degli spazi nel nome l'asterisco non muore (ad ogni iterazione $VARIABILE conterrà il nome del file corrente) ma dovrai quotare coi doppi apici (es: mv "$VARIABILE" "$VARIABILE.mp4").
> >
> > Non capisco qui il ruolo delle virgolette, l'esempio di sassofono non le ha e * non dovrebbe dare il nome anche se ha spazi?
>
> Ad esempio
> for i in *; do echo - $i -; done
> dà
> - 0000.MTS -
> - 0001.MTS -
> - 0002.MTS -
> - 0003.MTS -
> - content.txt -
> - DSC1234.jpg -
> - DSC5678.jpg -
> - DSC9876.jpg -
> - Hōla Mattiä.JPEG -
> - pippo pluto.MTS -
> - spazi nel nome.txt -
>
> e
> for i in *; do echo "- $i -"; done
> la stessa cosa.
Vedi l'esempio sopra, in echo gli argomenti vengono sputati fuori pari pari come entrano, in comandi che invece ne interpretano il significato (nomi di files per cp,mv,rm.. ad esempio), questo fa una grossa differenza.Young professional woman and busy mom.-
Re: Rinominare file col CygoloneScritto daNon Autenticatoil 2012-11-05 23:34:59.0 alle 2012-11-05 23:34:59.0> > > > Con degli spazi nel nome l'asterisco non muore (ad ogni iterazione $VARIABILE conterrà il nome del file corrente) ma dovrai quotare coi doppi apici (es: mv "$VARIABILE" "$VARIABILE.mp4").
> > >
> > > Non capisco qui il ruolo delle virgolette, l'esempio di sassofono non le ha e * non dovrebbe dare il nome anche se ha spazi?
> >
> > Ad esempio
> > for i in *; do echo - $i -; done
> > dà
> > - 0000.MTS -
> > - 0001.MTS -
> > - 0002.MTS -
> > - 0003.MTS -
> > - content.txt -
> > - DSC1234.jpg -
> > - DSC5678.jpg -
> > - DSC9876.jpg -
> > - Hōla Mattiä.JPEG -
> > - pippo pluto.MTS -
> > - spazi nel nome.txt -
> >
> > e
> > for i in *; do echo "- $i -"; done
> > la stessa cosa.
>
> Vedi l'esempio sopra, in echo gli argomenti vengono sputati fuori pari pari come entrano, in comandi che invece ne interpretano il significato (nomi di files per cp,mv,rm.. ad esempio), questo fa una grossa differenza.
Capito. Nel caso di mv
for i in ????.*; do mv $i $i.mp4; done
ha rinominato
0000.MTS
0001.MTS
0002.MTS
0003.MTS
in
0000.MTS.mp4
0001.MTS.mp4
0002.MTS.mp4
0003.MTS.mp4
ma adesso... ehm ehm... come si torna indietro togliendo '.mp4' ai file rinominati?-
Re: Rinominare file col CygoloneScritto daNon Autenticatoil 2012-11-05 23:38:10.0 alle 2012-11-05 23:38:10.0Scritto da:
> > > > > Con degli spazi nel nome l'asterisco non muore (ad ogni iterazione $VARIABILE conterrà il nome del file corrente) ma dovrai quotare coi doppi apici (es: mv "$VARIABILE" "$VARIABILE.mp4").
> > > >
> > > > Non capisco qui il ruolo delle virgolette, l'esempio di sassofono non le ha e * non dovrebbe dare il nome anche se ha spazi?
> > >
> > > Ad esempio
> > > for i in *; do echo - $i -; done
> > > dà
> > > - 0000.MTS -
> > > - 0001.MTS -
> > > - 0002.MTS -
> > > - 0003.MTS -
> > > - content.txt -
> > > - DSC1234.jpg -
> > > - DSC5678.jpg -
> > > - DSC9876.jpg -
> > > - Hōla Mattiä.JPEG -
> > > - pippo pluto.MTS -
> > > - spazi nel nome.txt -
> > >
> > > e
> > > for i in *; do echo "- $i -"; done
> > > la stessa cosa.
> >
> > Vedi l'esempio sopra, in echo gli argomenti vengono sputati fuori pari pari come entrano, in comandi che invece ne interpretano il significato (nomi di files per cp,mv,rm.. ad esempio), questo fa una grossa differenza.
>
> Capito. Nel caso di mv
> for i in ????.*; do mv $i $i.mp4; done
> ha rinominato
> 0000.MTS
> 0001.MTS
> 0002.MTS
> 0003.MTS
> in
> 0000.MTS.mp4
> 0001.MTS.mp4
> 0002.MTS.mp4
> 0003.MTS.mp4
>
> ma adesso... ehm ehm... come si torna indietro togliendo '.mp4' ai file rinominati?
-
Re: Rinominare file col CygoloneScritto da:
> > > > > Con degli spazi nel nome l'asterisco non muore (ad ogni iterazione $VARIABILE conterrà il nome del file corrente) ma dovrai quotare coi doppi apici (es: mv "$VARIABILE" "$VARIABILE.mp4").
> > > >
> > > > Non capisco qui il ruolo delle virgolette, l'esempio di sassofono non le ha e * non dovrebbe dare il nome anche se ha spazi?
> > >
> > > Ad esempio
> > > for i in *; do echo - $i -; done
> > > dà
> > > - 0000.MTS -
> > > - 0001.MTS -
> > > - 0002.MTS -
> > > - 0003.MTS -
> > > - content.txt -
> > > - DSC1234.jpg -
> > > - DSC5678.jpg -
> > > - DSC9876.jpg -
> > > - Hōla Mattiä.JPEG -
> > > - pippo pluto.MTS -
> > > - spazi nel nome.txt -
> > >
> > > e
> > > for i in *; do echo "- $i -"; done
> > > la stessa cosa.
> >
> > Vedi l'esempio sopra, in echo gli argomenti vengono sputati fuori pari pari come entrano, in comandi che invece ne interpretano il significato (nomi di files per cp,mv,rm.. ad esempio), questo fa una grossa differenza.
>
> Capito. Nel caso di mv
> for i in ????.*; do mv $i $i.mp4; done
> ha rinominato
> 0000.MTS
> 0001.MTS
> 0002.MTS
> 0003.MTS
> in
> 0000.MTS.mp4
> 0001.MTS.mp4
> 0002.MTS.mp4
> 0003.MTS.mp4
>
> ma adesso... ehm ehm... come si torna indietro togliendo '.mp4' ai file rinominati?
Un paio di modi per farlo:for i in *.MTS.mp4 ; do # sostituzione mediante regex con sed mv "$i" "$(echo "$i" sed s/.mp4//)" # oppure via sostituzioni bash mv "$i" "${i%.mp4}" # oppure via comando basename mv "$i" "$(basename "$i" .mp4)" done
Edit: ho chiarito sed, forse ti è più familiare con gli slash.
**Modificato dall'autore il 05.11.2012 23:45**Young professional woman and busy mom.-
Re: Rinominare file col CygoloneScritto daNon Autenticatoil 2012-11-05 23:45:34.0 alle 2012-11-05 23:45:34.0Scritto da: ::1
> Scritto da:
> > > > > > Con degli spazi nel nome l'asterisco non muore (ad ogni iterazione $VARIABILE conterrà il nome del file corrente) ma dovrai quotare coi doppi apici (es: mv "$VARIABILE" "$VARIABILE.mp4").
> > > > >
> > > > > Non capisco qui il ruolo delle virgolette, l'esempio di sassofono non le ha e * non dovrebbe dare il nome anche se ha spazi?
> > > >
> > > > Ad esempio
> > > > for i in *; do echo - $i -; done
> > > > dà
> > > > - 0000.MTS -
> > > > - 0001.MTS -
> > > > - 0002.MTS -
> > > > - 0003.MTS -
> > > > - content.txt -
> > > > - DSC1234.jpg -
> > > > - DSC5678.jpg -
> > > > - DSC9876.jpg -
> > > > - Hōla Mattiä.JPEG -
> > > > - pippo pluto.MTS -
> > > > - spazi nel nome.txt -
> > > >
> > > > e
> > > > for i in *; do echo "- $i -"; done
> > > > la stessa cosa.
> > >
> > > Vedi l'esempio sopra, in echo gli argomenti vengono sputati fuori pari pari come entrano, in comandi che invece ne interpretano il significato (nomi di files per cp,mv,rm.. ad esempio), questo fa una grossa differenza.
> >
> > Capito. Nel caso di mv
> > for i in ????.*; do mv $i $i.mp4; done
> > ha rinominato
> > 0000.MTS
> > 0001.MTS
> > 0002.MTS
> > 0003.MTS
> > in
> > 0000.MTS.mp4
> > 0001.MTS.mp4
> > 0002.MTS.mp4
> > 0003.MTS.mp4
> >
> > ma adesso... ehm ehm... come si torna indietro togliendo '.mp4' ai file rinominati?
>
> Un paio di modi per farlo:
>> for i in *.MTS.mp4 ; do > # sostituzione mediante regex con sed > mv "$i" "$(echo "$i" | sed s:.mp4::)" > # oppure via sostituzioni bash > mv "$i" "${i%.mp4}" > # oppure via comando basename > mv "$i" "$(basename "$i" .mp4)" > done >
fix'd-
Re: Rinominare file col CygoloneScritto daNon Autenticatoil 2012-11-05 23:49:35.0 alle 2012-11-05 23:49:35.0> > > > > > > Con degli spazi nel nome l'asterisco non muore (ad ogni iterazione $VARIABILE conterrà il nome del file corrente) ma dovrai quotare coi doppi apici (es: mv "$VARIABILE" "$VARIABILE.mp4").
> > > > > >
> > > > > > Non capisco qui il ruolo delle virgolette, l'esempio di sassofono non le ha e * non dovrebbe dare il nome anche se ha spazi?
> > > > >
> > > > > Ad esempio
> > > > > for i in *; do echo - $i -; done
> > > > > dà
> > > > > - 0000.MTS -
> > > > > - 0001.MTS -
> > > > > - 0002.MTS -
> > > > > - 0003.MTS -
> > > > > - content.txt -
> > > > > - DSC1234.jpg -
> > > > > - DSC5678.jpg -
> > > > > - DSC9876.jpg -
> > > > > - Hōla Mattiä.JPEG -
> > > > > - pippo pluto.MTS -
> > > > > - spazi nel nome.txt -
> > > > >
> > > > > e
> > > > > for i in *; do echo "- $i -"; done
> > > > > la stessa cosa.
> > > >
> > > > Vedi l'esempio sopra, in echo gli argomenti vengono sputati fuori pari pari come entrano, in comandi che invece ne interpretano il significato (nomi di files per cp,mv,rm.. ad esempio), questo fa una grossa differenza.
> > >
> > > Capito. Nel caso di mv
> > > for i in ????.*; do mv $i $i.mp4; done
> > > ha rinominato
> > > 0000.MTS
> > > 0001.MTS
> > > 0002.MTS
> > > 0003.MTS
> > > in
> > > 0000.MTS.mp4
> > > 0001.MTS.mp4
> > > 0002.MTS.mp4
> > > 0003.MTS.mp4
> > >
> > > ma adesso... ehm ehm... come si torna indietro togliendo '.mp4' ai file rinominati?
> >
> > Un paio di modi per farlo:
> >> > for i in *.MTS.mp4 ; do > > # sostituzione mediante regex con sed > > mv "$i" "$(echo "$i" | sed s:.mp4::)" > > # oppure via sostituzioni bash > > mv "$i" "${i%.mp4}" > > # oppure via comando basename > > mv "$i" "$(basename "$i" .mp4)" > > done > >
>
> fix'd
Li provo domani dopo aver dato una scorsa a qualche manpage.
Si possono dare comandi su più linee?-
Re: Rinominare file col CygoloneScritto daNon Autenticatoil 2012-11-05 23:50:37.0 alle 2012-11-05 23:50:37.0Scritto da:
> > > > > > > > Con degli spazi nel nome l'asterisco non muore (ad ogni iterazione $VARIABILE conterrà il nome del file corrente) ma dovrai quotare coi doppi apici (es: mv "$VARIABILE" "$VARIABILE.mp4").
> > > > > > >
> > > > > > > Non capisco qui il ruolo delle virgolette, l'esempio di sassofono non le ha e * non dovrebbe dare il nome anche se ha spazi?
> > > > > >
> > > > > > Ad esempio
> > > > > > for i in *; do echo - $i -; done
> > > > > > dà
> > > > > > - 0000.MTS -
> > > > > > - 0001.MTS -
> > > > > > - 0002.MTS -
> > > > > > - 0003.MTS -
> > > > > > - content.txt -
> > > > > > - DSC1234.jpg -
> > > > > > - DSC5678.jpg -
> > > > > > - DSC9876.jpg -
> > > > > > - Hōla Mattiä.JPEG -
> > > > > > - pippo pluto.MTS -
> > > > > > - spazi nel nome.txt -
> > > > > >
> > > > > > e
> > > > > > for i in *; do echo "- $i -"; done
> > > > > > la stessa cosa.
> > > > >
> > > > > Vedi l'esempio sopra, in echo gli argomenti vengono sputati fuori pari pari come entrano, in comandi che invece ne interpretano il significato (nomi di files per cp,mv,rm.. ad esempio), questo fa una grossa differenza.
> > > >
> > > > Capito. Nel caso di mv
> > > > for i in ????.*; do mv $i $i.mp4; done
> > > > ha rinominato
> > > > 0000.MTS
> > > > 0001.MTS
> > > > 0002.MTS
> > > > 0003.MTS
> > > > in
> > > > 0000.MTS.mp4
> > > > 0001.MTS.mp4
> > > > 0002.MTS.mp4
> > > > 0003.MTS.mp4
> > > >
> > > > ma adesso... ehm ehm... come si torna indietro togliendo '.mp4' ai file rinominati?
> > >
> > > Un paio di modi per farlo:
> > >> > > for i in *.MTS.mp4 ; do > > > # sostituzione mediante regex con sed > > > mv "$i" "$(echo "$i" | sed s:.mp4::)" > > > # oppure via sostituzioni bash > > > mv "$i" "${i%.mp4}" > > > # oppure via comando basename > > > mv "$i" "$(basename "$i" .mp4)" > > > done > > >
> >
> > fix'd
>
> Li provo domani dopo aver dato una scorsa a qualche manpage.
>
> Si possono dare comandi su più linee?
Sì.-
Re: Rinominare file col CygoloneScritto daNon Autenticatoil 2012-11-05 23:54:44.0 alle 2012-11-05 23:54:44.0Scritto da:
> Scritto da:
> > > > > > > > > Con degli spazi nel nome l'asterisco non muore (ad ogni iterazione $VARIABILE conterrà il nome del file corrente) ma dovrai quotare coi doppi apici (es: mv "$VARIABILE" "$VARIABILE.mp4").
> > > > > > > >
> > > > > > > > Non capisco qui il ruolo delle virgolette, l'esempio di sassofono non le ha e * non dovrebbe dare il nome anche se ha spazi?
> > > > > > >
> > > > > > > Ad esempio
> > > > > > > for i in *; do echo - $i -; done
> > > > > > > dà
> > > > > > > - 0000.MTS -
> > > > > > > - 0001.MTS -
> > > > > > > - 0002.MTS -
> > > > > > > - 0003.MTS -
> > > > > > > - content.txt -
> > > > > > > - DSC1234.jpg -
> > > > > > > - DSC5678.jpg -
> > > > > > > - DSC9876.jpg -
> > > > > > > - Hōla Mattiä.JPEG -
> > > > > > > - pippo pluto.MTS -
> > > > > > > - spazi nel nome.txt -
> > > > > > >
> > > > > > > e
> > > > > > > for i in *; do echo "- $i -"; done
> > > > > > > la stessa cosa.
> > > > > >
> > > > > > Vedi l'esempio sopra, in echo gli argomenti vengono sputati fuori pari pari come entrano, in comandi che invece ne interpretano il significato (nomi di files per cp,mv,rm.. ad esempio), questo fa una grossa differenza.
> > > > >
> > > > > Capito. Nel caso di mv
> > > > > for i in ????.*; do mv $i $i.mp4; done
> > > > > ha rinominato
> > > > > 0000.MTS
> > > > > 0001.MTS
> > > > > 0002.MTS
> > > > > 0003.MTS
> > > > > in
> > > > > 0000.MTS.mp4
> > > > > 0001.MTS.mp4
> > > > > 0002.MTS.mp4
> > > > > 0003.MTS.mp4
> > > > >
> > > > > ma adesso... ehm ehm... come si torna indietro togliendo '.mp4' ai file rinominati?
> > > >
> > > > Un paio di modi per farlo:
> > > >> > > > for i in *.MTS.mp4 ; do > > > > # sostituzione mediante regex con sed > > > > mv "$i" "$(echo "$i" | sed s:.mp4::)" > > > > # oppure via sostituzioni bash > > > > mv "$i" "${i%.mp4}" > > > > # oppure via comando basename > > > > mv "$i" "$(basename "$i" .mp4)" > > > > done > > > >
> > >
> > > fix'd
> >
> > Li provo domani dopo aver dato una scorsa a qualche manpage.
> >
> > Si possono dare comandi su più linee?
>
> Sì.
Ah, dimenticavo: se vuoi separare un singolo comando su più linee ricordati di mettere un backslash al termine di ogni riga, così:mv pippo \ pluto
-
Re: Rinominare file col CygoloneScritto daNon Autenticatoil 2012-11-06 00:01:19.0 alle 2012-11-06 00:01:19.0> > > > > > > > > > Con degli spazi nel nome l'asterisco non muore (ad ogni iterazione $VARIABILE conterrà il nome del file corrente) ma dovrai quotare coi doppi apici (es: mv "$VARIABILE" "$VARIABILE.mp4").
> > > > > > > > >
> > > > > > > > > Non capisco qui il ruolo delle virgolette, l'esempio di sassofono non le ha e * non dovrebbe dare il nome anche se ha spazi?
> > > > > > > >
> > > > > > > > Ad esempio
> > > > > > > > for i in *; do echo - $i -; done
> > > > > > > > dà
> > > > > > > > - 0000.MTS -
> > > > > > > > - 0001.MTS -
> > > > > > > > - 0002.MTS -
> > > > > > > > - 0003.MTS -
> > > > > > > > - content.txt -
> > > > > > > > - DSC1234.jpg -
> > > > > > > > - DSC5678.jpg -
> > > > > > > > - DSC9876.jpg -
> > > > > > > > - Hōla Mattiä.JPEG -
> > > > > > > > - pippo pluto.MTS -
> > > > > > > > - spazi nel nome.txt -
> > > > > > > >
> > > > > > > > e
> > > > > > > > for i in *; do echo "- $i -"; done
> > > > > > > > la stessa cosa.
> > > > > > >
> > > > > > > Vedi l'esempio sopra, in echo gli argomenti vengono sputati fuori pari pari come entrano, in comandi che invece ne interpretano il significato (nomi di files per cp,mv,rm.. ad esempio), questo fa una grossa differenza.
> > > > > >
> > > > > > Capito. Nel caso di mv
> > > > > > for i in ????.*; do mv $i $i.mp4; done
> > > > > > ha rinominato
> > > > > > 0000.MTS
> > > > > > 0001.MTS
> > > > > > 0002.MTS
> > > > > > 0003.MTS
> > > > > > in
> > > > > > 0000.MTS.mp4
> > > > > > 0001.MTS.mp4
> > > > > > 0002.MTS.mp4
> > > > > > 0003.MTS.mp4
> > > > > >
> > > > > > ma adesso... ehm ehm... come si torna indietro togliendo '.mp4' ai file rinominati?
> > > > >
> > > > > Un paio di modi per farlo:
> > > > >> > > > > for i in *.MTS.mp4 ; do > > > > > # sostituzione mediante regex con sed > > > > > mv "$i" "$(echo "$i" | sed s:.mp4::)" > > > > > # oppure via sostituzioni bash > > > > > mv "$i" "${i%.mp4}" > > > > > # oppure via comando basename > > > > > mv "$i" "$(basename "$i" .mp4)" > > > > > done > > > > >
> > > >
> > > > fix'd
> > >
> > > Li provo domani dopo aver dato una scorsa a qualche manpage.
> > >
> > > Si possono dare comandi su più linee?
> >
> > Sì.
>
> Ah, dimenticavo: se vuoi separare un singolo comando su più linee ricordati di mettere un backslash al termine di ogni riga, così:
>
>> mv pippo \ > pluto >
Grazie.
-
-
-
Re: Rinominare file col Cygolone> Si possono dare comandi su più linee?
Puoi terminare una linea con un '\' e proseguire sulla linea dopo:$ echo multi\ > linea multilinea $
nb: Il '> ' ce lo mette la shell.Young professional woman and busy mom.-
Re: Rinominare file col CygoloneScritto daNon Autenticatoil 2012-11-06 14:42:01.0 alle 2012-11-06 14:42:01.0> > Si possono dare comandi su più linee?
>
> Puoi terminare una linea con un '\' e proseguire sulla linea dopo:
>> $ echo multi\
> > linea > multilinea > $ >
> nb: Il '> ' ce lo mette la shell.
Ehm ehm coff coff, e una volta entrati nella modalità multilinea come se ne esce? Pensavo che si uscisse smettendo di mettere \, ma non è così. È tutta la notte che premo Invio e continua ad aggiungere > nella riga sotto.-
Re: Rinominare file col CygoloneScritto da:
> Ehm ehm coff coff, e una volta entrati nella modalità multilinea come se ne esce?
;`"la realta' non e' cosi' terrificante come vogliono farti credere" - Giambo ` - Wakko che cita Giambo
-
Re: Rinominare file col CygoloneScritto daavvelentaniCubicolarioil 2012-11-06 14:44:40.0 alle 2012-11-06 14:44:40.0Trollate totali: 18184Scritto da:
> > > Si possono dare comandi su più linee?
> >
> > Puoi terminare una linea con un '\' e proseguire sulla linea dopo:
> >> > $ echo multi\
> > > linea > > multilinea > > $ > >
> > nb: Il '> ' ce lo mette la shell.
>
> Ehm ehm coff coff, e una volta entrati nella modalità multilinea come se ne esce? Pensavo che si uscisse smettendo di mettere \, ma non è così. È tutta la notte che premo Invio e continua ad aggiungere > nella riga sotto.
Se ci sei entrato usando \ prima della fine della linea basta premere invio, siccome non ti fa uscire ci sei entrato perche' hai un quote non chiuso, devi chiudere il quote oppure inviare un EOF (ctrl-d)I think happiness is love
- Vladimir Putin-
Re: Rinominare file col CygoloneScritto daNon Autenticatoil 2012-11-06 14:57:49.0 alle 2012-11-06 14:57:49.0> > > > Si possono dare comandi su più linee?
> > >
> > > Puoi terminare una linea con un '\' e proseguire sulla linea dopo:
> > >> > > $ echo multi\
> > > > linea > > > multilinea > > > $ > > >
> > > nb: Il '> ' ce lo mette la shell.
> >
> > Ehm ehm coff coff, e una volta entrati nella modalità multilinea come se ne esce? Pensavo che si uscisse smettendo di mettere \, ma non è così. È tutta la notte che premo Invio e continua ad aggiungere > nella riga sotto.
>
> Se ci sei entrato usando \ prima della fine della linea basta premere invio, siccome non ti fa uscire ci sei entrato perche' hai un quote non chiuso, devi chiudere il quote oppure inviare un EOF (ctrl-d)pc@pc-TOSH /cygdrive/d/cygtest $ for i in * \ > do echo $i \ > done >
Quale sarebbe il quote non chiuso?
Se invece gli dò CTRL D$ for i in * \ > do echo $i \ > done > -bash: syntax error: unexpected end of file
Perché il tag CODE lascia una linea vuota sotto?-
Re: Rinominare file col CygoloneScritto da:
> Perché il tag CODE lascia una linea vuota sotto?
Quando questo forum era mio, il tag code ti chiamava per nome
!
`"la realta' non e' cosi' terrificante come vogliono farti credere" - Giambo ` - Wakko che cita Giambo
-
Re: Rinominare file col CygoloneScritto daavvelentaniCubicolarioil 2012-11-06 15:35:30.0 alle 2012-11-06 15:35:30.0Trollate totali: 18184Scritto da:
>pc@pc-TOSH /cygdrive/d/cygtest > $ for i in * \
> > do echo $i \ > > done > >
> Quale sarebbe il quote non chiuso?
>
> Se invece gli dò CTRL D
>
>$ for i in * \
> > do echo $i \ > > done > > -bash: syntax error: unexpected end of file
sta facendo cosi` perche' dopo for ci va un carattere newline o un ; e tu non ce l'hai messo:$ for i in *;\ do echo $i;\ done
E` piu` semplice evitare di mettere gli escape, se il comando e` incompleto bash continua a chiederti input.
>
> Perché il tag CODE lascia una linea vuota sotto?
Perche' si`I think happiness is love
- Vladimir Putin-
Re: Rinominare file col CygoloneScritto daNon Autenticatoil 2012-11-06 15:54:23.0 alle 2012-11-06 15:54:23.0> >
pc@pc-TOSH /cygdrive/d/cygtest > > $ for i in * \
> > > do echo $i \ > > > done > > >
> > Quale sarebbe il quote non chiuso?
> >
> > Se invece gli dò CTRL D
> >
> >$ for i in * \
> > > do echo $i \ > > > done > > > -bash: syntax error: unexpected end of file
>
> sta facendo cosi` perche' dopo for ci va un carattere newline o un ; e tu non ce l'hai messo:
>
>> $ for i in *;\ > do echo $i;\ > done >
Capito. Trovavo naturale supporre che mettere il comando su più linee con \ equivalesse a dargli un newline dopo ogni \.
-
Re: Rinominare file col CygoloneScritto daavvelentaniCubicolarioil 2012-11-06 16:10:44.0 alle 2012-11-06 16:10:44.0Trollate totali: 18184Scritto da:
> > >pc@pc-TOSH /cygdrive/d/cygtest > > > $ for i in * \
> > > > do echo $i \ > > > > done > > > >
> > > Quale sarebbe il quote non chiuso?
> > >
> > > Se invece gli dò CTRL D
> > >
> > >$ for i in * \
> > > > do echo $i \ > > > > done > > > > -bash: syntax error: unexpected end of file
> >
> > sta facendo cosi` perche' dopo for ci va un carattere newline o un ; e tu non ce l'hai messo:
> >
> >> > $ for i in *;\ > > do echo $i;\ > > done > >
>
> Capito. Trovavo naturale supporre che mettere il comando su più linee con \ equivalesse a dargli un newline dopo ogni \.
>
No, il \ prima dei newline serve per togliere i newline, bash parsa l'input e se e` sintatticamente incompleto continua a chiederti altro input. Personalmente penso che sia un hack orripilante e scrivo tutto su la stessa linea.I think happiness is love
- Vladimir Putin-
Re: Rinominare file col CygoloneScritto daNon Autenticatoil 2012-11-06 16:15:18.0 alle 2012-11-06 16:15:18.0> > > >
pc@pc-TOSH /cygdrive/d/cygtest > > > > $ for i in * \
> > > > > do echo $i \ > > > > > done > > > > >
> > > > Quale sarebbe il quote non chiuso?
> > > >
> > > > Se invece gli dò CTRL D
> > > >
> > > >$ for i in * \
> > > > > do echo $i \ > > > > > done > > > > > -bash: syntax error: unexpected end of file
> > >
> > > sta facendo cosi` perche' dopo for ci va un carattere newline o un ; e tu non ce l'hai messo:
> > >
> > >> > > $ for i in *;\ > > > do echo $i;\ > > > done > > >
> >
> > Capito. Trovavo naturale supporre che mettere il comando su più linee con \ equivalesse a dargli un newline dopo ogni \.
> >
>
> No, il \ prima dei newline serve per togliere i newline, bash parsa l'input e se e` sintatticamente incompleto continua a chiederti altro input. Personalmente penso che sia un hack orripilante e scrivo tutto su la stessa linea.
Se può stare sulla stessa linea penso anch'io che sia meglio.
-
-
-
-
-
-
-
-
-
-
Re: Rinominare file col CygoloneScritto daNon Autenticatoil 2012-11-06 16:14:05.0 alle 2012-11-06 16:14:05.0
for i in *.MTS.mp4 ; do mv "$i" "$(basename "$i" .mp4)" done
immediatamente comprensibilefor i in *.MTS.mp4 ; do # sostituzione mediante regex con sed mv "$i" "$(echo "$i" sed s/.mp4//)" done
comprensibile dopo man sedfor i in *.MTS.mp4 ; do # oppure via sostituzioni bash mv "$i" "${i%.mp4}" done
Questo non ho capito come funziona.-
Re: Rinominare file col CygoloneScritto daNon Autenticatoil 2012-11-06 20:24:14.0 alle 2012-11-06 20:24:14.0>
> for i in *.MTS.mp4 ; do > mv "$i" "$(basename "$i" .mp4)" > done >
>
> immediatamente comprensibile
>
>> for i in *.MTS.mp4 ; do > # sostituzione mediante regex con sed > mv "$i" "$(echo "$i" sed s/.mp4//)" > done >
>
> comprensibile dopo man sed
>
>> for i in *.MTS.mp4 ; do > # oppure via sostituzioni bash > mv "$i" "${i%.mp4}" > done >
>
> Questo non ho capito come funziona.
Uppete. Ultima domanda, ggiuro.
-
Re: Rinominare file col Cygolone> >
> > for i in *.MTS.mp4 ; do > > # oppure via sostituzioni bash > > mv "$i" "${i%.mp4}" > > done > >
> >
> > Questo non ho capito come funziona.
>
> Uppete. Ultima domanda, ggiuro.
${var%Pattern} Remove from $var the shortest part of $Pattern that matches the back end of $var.
http://tldp.org/LDP/abs/html/parameter-substitutio...
Segnati anche questa:
http://tldp.org/LDP/abs/html/string-manipulation.h...
Young professional woman and busy mom.-
Re: Rinominare file col CygoloneScritto daNon Autenticatoil 2012-11-06 20:38:14.0 alle 2012-11-06 20:38:14.0> > >
> > > for i in *.MTS.mp4 ; do > > > # oppure via sostituzioni bash > > > mv "$i" "${i%.mp4}" > > > done > > >
> > >
> > > Questo non ho capito come funziona.
> >
> > Uppete. Ultima domanda, ggiuro.
>
> ${var%Pattern} Remove from $var the shortest part of $Pattern that matches the back end of $var.
>
> http://tldp.org/LDP/abs/html/parameter-substitutio...
>
> Segnati anche questa:
> http://tldp.org/LDP/abs/html/string-manipulation.h...
Quante cose bisogna sapere per essere un linaro.
-
Re: Rinominare file col CygoloneScritto daavvelentaniCubicolarioil 2012-11-06 20:53:20.0 alle 2012-11-06 20:53:20.0Trollate totali: 18184Scritto da:
> > > >> > > > for i in *.MTS.mp4 ; do > > > > # oppure via sostituzioni bash > > > > mv "$i" "${i%.mp4}" > > > > done > > > >
> > > >
> > > > Questo non ho capito come funziona.
> > >
> > > Uppete. Ultima domanda, ggiuro.
> >
> > ${var%Pattern} Remove from $var the shortest part of $Pattern that matches the back end of $var.
> >
> > http://tldp.org/LDP/abs/html/parameter-substitutio...
> >
> > Segnati anche questa:
> > http://tldp.org/LDP/abs/html/string-manipulation.h...
>
> Quante cose bisogna sapere per essere un linaro.
non lo imparare, puoi fare senza.I think happiness is love
- Vladimir Putin-
Re: Rinominare file col CygoloneScritto daNon Autenticatoil 2012-11-06 21:56:28.0 alle 2012-11-06 21:56:28.0> > > > >
> > > > > for i in *.MTS.mp4 ; do > > > > > # oppure via sostituzioni bash > > > > > mv "$i" "${i%.mp4}" > > > > > done > > > > >
> > > > >
> > > > > Questo non ho capito come funziona.
> > > >
> > > > Uppete. Ultima domanda, ggiuro.
> > >
> > > ${var%Pattern} Remove from $var the shortest part of $Pattern that matches the back end of $var.
> > >
> > > http://tldp.org/LDP/abs/html/parameter-substitutio...
> > >
> > > Segnati anche questa:
> > > http://tldp.org/LDP/abs/html/string-manipulation.h...
> >
> > Quante cose bisogna sapere per essere un linaro.
>
> non lo imparare, puoi fare senza.
E quando il sistema operativo preinstallato sui computer avrà l'interfaccia da bamba stile Windows 8 e non potrò installare XP o il 7 perché obsoleti, come farò?
-
Re: Rinominare file col CygoloneScritto daavvelentaniCubicolarioil 2012-11-06 22:37:46.0 alle 2012-11-06 22:37:46.0Trollate totali: 18184Scritto da:
> > > > > >> > > > > > for i in *.MTS.mp4 ; do > > > > > > # oppure via sostituzioni bash > > > > > > mv "$i" "${i%.mp4}" > > > > > > done > > > > > >
> > > > > >
> > > > > > Questo non ho capito come funziona.
> > > > >
> > > > > Uppete. Ultima domanda, ggiuro.
> > > >
> > > > ${var%Pattern} Remove from $var the shortest part of $Pattern that matches the back end of $var.
> > > >
> > > > http://tldp.org/LDP/abs/html/parameter-substitutio...
> > > >
> > > > Segnati anche questa:
> > > > http://tldp.org/LDP/abs/html/string-manipulation.h...
> > >
> > > Quante cose bisogna sapere per essere un linaro.
> >
> > non lo imparare, puoi fare senza.
>
> E quando il sistema operativo preinstallato sui computer avrà l'interfaccia da bamba stile Windows 8 e non potrò installare XP o il 7 perché obsoleti, come farò?
Userai il sistema operativo da bamba, se volevi passare a linux eri passato a linux da un pezzo.
Comunque io mi riferivo alla sintassi di bash per fare le sostituzioni, non a linux.I think happiness is love
- Vladimir Putin-
Re: Rinominare file col CygoloneScritto daNon Autenticatoil 2012-11-07 02:19:31.0 alle 2012-11-07 02:19:31.0> > > > > > >
> > > > > > > for i in *.MTS.mp4 ; do > > > > > > > # oppure via sostituzioni bash > > > > > > > mv "$i" "${i%.mp4}" > > > > > > > done > > > > > > >
> > > > > > >
> > > > > > > Questo non ho capito come funziona.
> > > > > >
> > > > > > Uppete. Ultima domanda, ggiuro.
> > > > >
> > > > > ${var%Pattern} Remove from $var the shortest part of $Pattern that matches the back end of $var.
> > > > >
> > > > > http://tldp.org/LDP/abs/html/parameter-substitutio...
> > > > >
> > > > > Segnati anche questa:
> > > > > http://tldp.org/LDP/abs/html/string-manipulation.h...
> > > >
> > > > Quante cose bisogna sapere per essere un linaro.
> > >
> > > non lo imparare, puoi fare senza.
> >
> > E quando il sistema operativo preinstallato sui computer avrà l'interfaccia da bamba stile Windows 8 e non potrò installare XP o il 7 perché obsoleti, come farò?
>
> Userai il sistema operativo da bamba, se volevi passare a linux eri passato a linux da un pezzo.
>
> Comunque io mi riferivo alla sintassi di bash per fare le sostituzioni, non a linux.
Quando ho saputo dell'esistenza di Linux, era già troppo complicato per me.
E non avevo un motivo per usarlo.
Ora che iniziano ad esserci programmi utili e usabili, ci sto facendo un pensierino.
-
-
-
-
Re: Rinominare file col CygoloneScritto da:
> > > >> > > > for i in *.MTS.mp4 ; do > > > > # oppure via sostituzioni bash > > > > mv "$i" "${i%.mp4}" > > > > done > > > >
> > > >
> > > > Questo non ho capito come funziona.
> > >
> > > Uppete. Ultima domanda, ggiuro.
> >
> > ${var%Pattern} Remove from $var the shortest part of $Pattern that matches the back end of $var.
> >
> > http://tldp.org/LDP/abs/html/parameter-substitutio...
> >
> > Segnati anche questa:
> > http://tldp.org/LDP/abs/html/string-manipulation.h...
>
> Quante cose bisogna sapere per essere un linaro.
In realtà nautilus (gnome) e dolphin (kde) hanno ottimi sistemi intuitivi di selezione multipla e batch renaming decisamente migliori di windows explorer e senza dover conoscere l'ascell.
Tuttavia bash (e zsh
) sono decisamente più appaganti come conoscenze da fare proprie anche in termini di proficienza nell'utilizzo sul lungo periodo.
Young professional woman and busy mom.-
Re: Rinominare file col CygoloneScritto daNon Autenticatoil 2012-11-06 21:58:49.0 alle 2012-11-06 21:58:49.0> > > > >
> > > > > for i in *.MTS.mp4 ; do > > > > > # oppure via sostituzioni bash > > > > > mv "$i" "${i%.mp4}" > > > > > done > > > > >
> > > > >
> > > > > Questo non ho capito come funziona.
> > > >
> > > > Uppete. Ultima domanda, ggiuro.
> > >
> > > ${var%Pattern} Remove from $var the shortest part of $Pattern that matches the back end of $var.
> > >
> > > http://tldp.org/LDP/abs/html/parameter-substitutio...
> > >
> > > Segnati anche questa:
> > > http://tldp.org/LDP/abs/html/string-manipulation.h...
> >
> > Quante cose bisogna sapere per essere un linaro.
>
> In realtà nautilus (gnome) e dolphin (kde) hanno ottimi sistemi intuitivi di selezione multipla e batch renaming decisamente migliori di windows explorer e senza dover conoscere l'ascell.
> Tuttavia bash (e zsh
) sono decisamente più appaganti come conoscenze da fare proprie anche in termini di proficienza nell'utilizzo sul lungo periodo.
Mi fa già impazzire LaTeX. Mai visto una cosa così messa insieme col fil di ferro, al confronto PHP è l'essenza della coerenza.-
Re: Rinominare file col CygoloneScritto da:
> > > > > >> > > > > > for i in *.MTS.mp4 ; do > > > > > > # oppure via sostituzioni bash > > > > > > mv "$i" "${i%.mp4}" > > > > > > done > > > > > >
> > > > > >
> > > > > > Questo non ho capito come funziona.
> > > > >
> > > > > Uppete. Ultima domanda, ggiuro.
> > > >
> > > > ${var%Pattern} Remove from $var the shortest part of $Pattern that matches the back end of $var.
> > > >
> > > > http://tldp.org/LDP/abs/html/parameter-substitutio...
> > > >
> > > > Segnati anche questa:
> > > > http://tldp.org/LDP/abs/html/string-manipulation.h...
> > >
> > > Quante cose bisogna sapere per essere un linaro.
> >
> > In realtà nautilus (gnome) e dolphin (kde) hanno ottimi sistemi intuitivi di selezione multipla e batch renaming decisamente migliori di windows explorer e senza dover conoscere l'ascell.
> > Tuttavia bash (e zsh
) sono decisamente più appaganti come conoscenze da fare proprie anche in termini di proficienza nell'utilizzo sul lungo periodo.
>
> Mi fa già impazzire LaTeX. Mai visto una cosa così messa insieme col fil di ferro, al confronto PHP è l'essenza della coerenza.
Non ho ancora capito cosa di preciso ti blocca dall'installare linux e avere un xp di emergenza dentro una virtual machine quando proprio non ne puoi fare a meno.Young professional woman and busy mom.-
Re: Rinominare file col CygoloneScritto daNon Autenticatoil 2012-11-07 02:26:05.0 alle 2012-11-07 02:26:05.0> > > > > > >
> > > > > > > for i in *.MTS.mp4 ; do > > > > > > > # oppure via sostituzioni bash > > > > > > > mv "$i" "${i%.mp4}" > > > > > > > done > > > > > > >
> > > > > > >
> > > > > > > Questo non ho capito come funziona.
> > > > > >
> > > > > > Uppete. Ultima domanda, ggiuro.
> > > > >
> > > > > ${var%Pattern} Remove from $var the shortest part of $Pattern that matches the back end of $var.
> > > > >
> > > > > http://tldp.org/LDP/abs/html/parameter-substitutio...
> > > > >
> > > > > Segnati anche questa:
> > > > > http://tldp.org/LDP/abs/html/string-manipulation.h...
> > > >
> > > > Quante cose bisogna sapere per essere un linaro.
> > >
> > > In realtà nautilus (gnome) e dolphin (kde) hanno ottimi sistemi intuitivi di selezione multipla e batch renaming decisamente migliori di windows explorer e senza dover conoscere l'ascell.
> > > Tuttavia bash (e zsh
) sono decisamente più appaganti come conoscenze da fare proprie anche in termini di proficienza nell'utilizzo sul lungo periodo.
> >
> > Mi fa già impazzire LaTeX. Mai visto una cosa così messa insieme col fil di ferro, al confronto PHP è l'essenza della coerenza.
>
> Non ho ancora capito cosa di preciso ti blocca dall'installare linux
Il fatto che il computer su cui pensavo di farlo sia cimito?
> e avere un xp di emergenza dentro una virtual machine quando proprio non ne puoi fare a meno.
Potrei installare Linux o sul portatile (lo escludo, non voglio dannarmi l'anima) o portare a 1,5 GB la RAM del vecchio Pentium III con Windows 98 e provare lì.
Però vedi, prima dovrei comprare il NAS per svuotarci un po' di dischi rendendoli disponibili per gli esperimenti. Hard disk nuovi compatibili col BIOS del vecchio computer chissà se ne fanno ancora.
E purtroppo quando il mio subconscio ha urtato la macchina del condomino ho creato danni pari all'ammontare stanziato per il NAS.
-
-
Re: Rinominare file col CygoloneScritto daavvelentaniCubicolarioil 2012-11-06 22:39:00.0 alle 2012-11-06 22:39:00.0Trollate totali: 18184Scritto da:
> Mi fa già impazzire LaTeX. Mai visto una cosa così messa insieme col fil di ferro, al confronto PHP è l'essenza della coerenza.
Lascia perdere LaTeX e usa Plain TeX direttamente, e` tutto molto piu` semplice.
Per impararlo ti basta leggere il sorgente del programma tex.
**Modificato dall'autore il 06.11.2012 22:39**I think happiness is love
- Vladimir Putin-
Re: Rinominare file col CygoloneScritto daNon Autenticatoil 2012-11-07 02:16:49.0 alle 2012-11-07 02:16:49.0> > Mi fa già impazzire LaTeX. Mai visto una cosa così messa insieme col fil di ferro, al confronto PHP è l'essenza della coerenza.
>
> Lascia perdere LaTeX e usa Plain TeX direttamente, e` tutto molto piu` semplice.
See see, dovrei costruirmi da me tutte le macro che mi servono.
> Per impararlo ti basta leggere il sorgente del programma tex.
Perché non l'eseguibile compilato, con un editor esadecimale?
-
-
-
-
-
-
-
-
-
-
-
Re: Rinominare file col CygoloneScritto daNon Autenticatoil 2012-11-05 23:30:18.0 alle 2012-11-05 23:30:18.0Scritto da:
> > > Con degli spazi nel nome l'asterisco non muore (ad ogni iterazione $VARIABILE conterrà il nome del file corrente) ma dovrai quotare coi doppi apici (es: mv "$VARIABILE" "$VARIABILE.mp4").
> >
> > Non capisco qui il ruolo delle virgolette, l'esempio di sassofono non le ha e * non dovrebbe dare il nome anche se ha spazi?
>
> Ad esempio
> for i in *; do echo - $i -; done
> dà
> - 0000.MTS -
> - 0001.MTS -
> - 0002.MTS -
> - 0003.MTS -
> - content.txt -
> - DSC1234.jpg -
> - DSC5678.jpg -
> - DSC9876.jpg -
> - Hōla Mattiä.JPEG -
> - pippo pluto.MTS -
> - spazi nel nome.txt -
>
> e
> for i in *; do echo "- $i -"; done
> la stessa cosa.
Il problema sorge per comandi con più argomenti, come appunto mv: senza doppi apici mv $i $i.mp4 ad esempio nel caso di pippo pluto.MTS viene interpretato come mv pippo pluto.MTS pippo pluto.MTS.mp4.
-
-
Re: Rinominare file col Cygolone> Non capisco qui il ruolo delle virgolette, l'esempio di sassofono non le ha e * non dovrebbe dare il nome anche se ha spazi?
Guarda questo listato (comandi prefissati da $):$ mkdir test $ cd test $ echo test > file.txt $ echo test > file\ con\ spazi.txt $ ls file con spazi.txt file.txt $ for f in * ; do node -e 'console.log(process.argv)' $f ; done [ 'node', 'file', 'con', 'spazi.txt' ] [ 'node', 'file.txt' ] $ for f in * ; do node -e 'console.log(process.argv)' "$f" ; done [ 'node', 'file con spazi.txt' ] [ 'node', 'file.txt' ] $
Senza fissarti sul comando che ho usato per stampare gli argomenti, vedi che senza quotare al programma arrivano gli argomenti spezzettati: per questo è necessario quotare.Young professional woman and busy mom.
-
-
-
-
-
-
Re: Rinominare file col CygoloneScritto da: avvelentani
>> for i in *; do blah blah; done
Funziona anche se hai mille miGlioni di files ?`"la realta' non e' cosi' terrificante come vogliono farti credere" - Giambo ` - Wakko che cita Giambo
-
-
-
-
Re: Rinominare file col CygoloneScritto daNon Autenticatoil 2012-11-05 21:12:36.0 alle 2012-11-05 21:12:36.0> > Scritto da: ::1
> >
> > > for f in $(ls)
> >
> >

> >
>
> uff
> find -print0 | xargs -0 -i mv {} {}.mp4
> contento?
Ho capito che sarà meglio rinominarli a manina con molta pazienza.
-
-
-
-
Re: Rinominare file col CygoloneScritto daNon Autenticatoil 2012-11-06 16:50:21.0 alle 2012-11-06 16:50:21.0spacca i culi questo tred
-
Re: Rinominare file col CygoloneScritto daNon Autenticatoil 2012-11-06 17:45:56.0 alle 2012-11-06 17:45:56.0> spacca i culi questo tred

Aspetta che torni la suora e poi vedi
-
Re: Rinominare file col CygoloneScritto daavvelentaniCubicolarioil 2012-11-06 18:53:39.0 alle 2012-11-06 18:53:39.0Trollate totali: 18184Scritto da:
> spacca i culi questo tred
Non mi pare
I think happiness is love
- Vladimir Putin-
Re: Rinominare file col CygoloneScritto da: avvelentani
> Scritto da:
> > spacca i culi questo tred
>
> Non mi pare
non ti accorgi della differenza?
Please consider the environment before printing this message, 50% of the above is useless!
-
Re: Rinominare file col CygoloneScritto daNon Autenticatoil 2012-11-06 20:06:53.0 alle 2012-11-06 20:06:53.0Scritto da: avvelentani
> Scritto da:
> > spacca i culi questo tred
>
> Non mi pare
a te piacciono i tred sulla superiorità del pene
-
Re: Rinominare file col CygoloneScritto daavvelentaniCubicolarioil 2012-11-06 20:54:50.0 alle 2012-11-06 20:54:50.0Trollate totali: 18184Scritto da:
> Scritto da: avvelentani
> > Scritto da:
> > > spacca i culi questo tred
> >
> > Non mi pare
>
> a te piacciono i tred sulla superiorità del pene
I think happiness is love
- Vladimir Putin
-
-
-
Re: Rinominare file col CygoloneScritto daNon Autenticatoil 2012-11-06 20:23:09.0 alle 2012-11-06 20:23:09.0> spacca i culi questo tred

Cygolone rulez
-
-