eliminare caratteri da nome file con rename...

Linguaggi di programmazione: php, perl, python, C, bash e tutti gli altri.
Scrivi risposta
nik1404
Scoppiettante Seguace
Scoppiettante Seguace
Messaggi: 299
Iscrizione: martedì 6 novembre 2007, 18:55
Desktop: mate
Distribuzione: PcLinuxos_86_64

eliminare caratteri da nome file con rename...

Messaggio da nik1404 »

salve a tutti...
sto cercando di imparare ad utilizzare sempre più il terminale, ma ho un problema con rename...

ho capito come eliminare/sostituire uno o più caratteri in un elenco di file partendo dal primo da sinistra o da destra (mantenendo o meno l'estensione);

Codice: Seleziona tutto

[nik@localhost cartella]$ rename -n 's/.{3}//' *.*
rename(001-1.pdf, -1.pdf)
rename(002-2.pdf, -2.pdf)
rename(003-3.pdf, -3.pdf)
rename(004-4.pdf, -4.pdf)
rename(005-5.pdf, -5.pdf)
rename(006-6.pdf, -6.pdf)
rename(007-7.pdf, -7.pdf)
rename(008-8.pdf, -8.pdf)
rename(009-9.pdf, -9.pdf)
[nik@localhost cartella]$ rename -n 's/.{2}.pdf/.pdf/' *.*
rename(001-1.pdf, 001.pdf)
rename(002-2.pdf, 002.pdf)
rename(003-3.pdf, 003.pdf)
rename(004-4.pdf, 004.pdf)
rename(005-5.pdf, 005.pdf)
rename(006-6.pdf, 006.pdf)
rename(007-7.pdf, 007.pdf)
rename(008-8.pdf, 008.pdf)
rename(009-9.pdf, 009.pdf)

ma se volessi cancellare/sostituire sempre con rename i caratteri dal secondo al quinto o dal penultimo al quintultimo?
ho banalmente provato a sostituire {2} con {-2} ma sarebbe stato troppo bello....non funziona

so che si può fare in altro modo, ad esempio con find ecc, ma non c'è un modo semplice per farlo con rename?

Codice: Seleziona tutto

for i in `find -type f`; do mv "$i" "${i:0: -2}";done
grazie
nik
Lucio C
Scoppiettante Seguace
Scoppiettante Seguace
Messaggi: 536
Iscrizione: venerdì 10 dicembre 2021, 18:33
Desktop: fvwm
Distribuzione: (X)Ubuntu24@home; openSUSE42.3@work
Sesso: Maschile
Località: Paneropoli

Re: eliminare caratteri da nome file con rename...

Messaggio da Lucio C »

Non so cosa sia "rename" (non e' un comando di sistema in /usr/bin ... che sia un builtin di bash ? io uso tcsh e non bash da sempre quindi non lo so) anche perche' da quasi-sempre ho due miei comandi (script) "rename" e "move" scritti attorno al comando di sistema mv.
Se quello che voglio fare e' cambiare (in modo volante caso per caso) il nome di un gruppo di file con un certo pattern di nomi, uso un loop (su piu' righe) con foreach (in tcsh si fa cosi') in cui $i e' il nome di partenza, creo una variabile $a editando $i vuoi con i builtin dello shell, vuoi usando le backquotes attorno a comandi come cut, tr, sed, awk ecc. ... e' il modo tradizionale di fare le cose in Unix.

Se avessi un esempio specifico dei due pattern di partenza e arrivo desiderati, potrei scrivere almeno una soluzione in tal modo ... ma per tcsh :shy:
The reasonable man adapts himself to the world: the unreasonable one persists in trying to adapt the world to himself. Therefore all progress depends on the unreasonable man. (G.B. Shaw)
nik1404
Scoppiettante Seguace
Scoppiettante Seguace
Messaggi: 299
Iscrizione: martedì 6 novembre 2007, 18:55
Desktop: mate
Distribuzione: PcLinuxos_86_64

Re: eliminare caratteri da nome file con rename...

Messaggio da nik1404 »

ciao,
ti ringrazio per la risposta, per quanto riguarda rename è un comando da dare in un terminale o inserire in uno script
Immagine

per l'esempio è nel primo codice del post iniziale...
questo il comando

Codice: Seleziona tutto

rename -n 's/.{3}//' *.*    
001-1.pdf ..... è il nome originario
-1.pdf ..... il risultato

idem per la seconda parte
001-1.pdf ..... nome di partenza
001.pd ..... risultato

ps. vorrei utilizzare esclusivamente rename....
Lucio C
Scoppiettante Seguace
Scoppiettante Seguace
Messaggi: 536
Iscrizione: venerdì 10 dicembre 2021, 18:33
Desktop: fvwm
Distribuzione: (X)Ubuntu24@home; openSUSE42.3@work
Sesso: Maschile
Località: Paneropoli

Re: eliminare caratteri da nome file con rename...

Messaggio da Lucio C »

nik1404 ha scritto:
venerdì 9 maggio 2025, 7:33
per quanto riguarda rename è un comando da dare in un terminale o inserire in uno script
Detto cosi' e' tecnicamente impreciso. Un "comando" per l'utente puo' essere un sacco di cose per la macchina: un binario eseguibile in /usr/bin (c.d. comando di sistema), uno script in /usr/bin (pure comando di sistema), una cosa built-in nello shell che uno usa, un binario o uno script che sta da altra parte nel $PATH che uno usa ... che puo' essere il path default di sistema o includere dei directory di utente (come ~/bin).
Cosa riportano questi due comandi ?

Codice: Seleziona tutto

which rename
whatis rename
Da me (se lo faccio da root, come dicevo da me sotto la mia utenza il primo punta a un mio script ... roba fatta nel 1990 quando c'era solo mv)
il primo non ritorna nulla e il secondo due man page rename.ul(1) e rename(2). E se faccio man rename vedo solo la seconda che e' una subroutine e non il primo. Di fatto pare sia un binario facendo

Codice: Seleziona tutto

which rename.ul
file /usr/bin/rename.ul
ps. vorrei utilizzare esclusivamente rename....
Se la sua man page dice che la sintassi per fare quello che vcuoi fare e' supportata lo puoi fare, se no, nello spirito Unix, ci fai un tuo workaround (come feci io nel lontano 1990 per altri motivi)
The reasonable man adapts himself to the world: the unreasonable one persists in trying to adapt the world to himself. Therefore all progress depends on the unreasonable man. (G.B. Shaw)
nik1404
Scoppiettante Seguace
Scoppiettante Seguace
Messaggi: 299
Iscrizione: martedì 6 novembre 2007, 18:55
Desktop: mate
Distribuzione: PcLinuxos_86_64

Re: eliminare caratteri da nome file con rename...

Messaggio da nik1404 »

...non sono un "tecnico" :)

questo il risultato dei due comandi (tecnicamente preciso? errato? :) con identico risultato anche da root; ho aggiunto anche il man...)

Codice: Seleziona tutto

[nik@localhost ~]$ which rename
/usr/bin/rename

[nik@localhost ~]$ whatis rename
rename               (1)  - rename files
rename               (n)  - Rename or delete a command
[nik@localhost ~]$ rename man
Bareword "man" not allowed while "strict subs" in use at (user-supplied code).

[nik@localhost ~]$ rename -man
NAME
    rename - renames multiple files

SYNOPSIS
    rename [ -h|-m|-V ] [ -v ] [ -0 ] [ -n ] [ -f ]
    [ -e|-E *perlexpr*]*|*perlexpr* [ *files* ]

DESCRIPTION
    "rename" renames the filenames supplied according to the rule specified
    as the first argument. The *perlexpr* argument is a Perl expression
    which is expected to modify the $_ string in Perl for at least some of
    the filenames specified. If a given filename is not modified by the
    expression, it will not be renamed. If no filenames are given on the
    command line, filenames will be read via standard input.

    For example, to rename all files matching "*.bak" to strip the
    extension, you might say

            rename 's/\.bak$//' *.bak

    To translate uppercase names to lower, you'd use

            rename 'y/A-Z/a-z/' *

OPTIONS
    -v, -verbose
            Verbose: print names of files successfully renamed.

    -0, -null
            Use \0 as record separator when reading from STDIN.

    -n, -nono
            No action: print names of files to be renamed, but don't rename.

    -f, -force
            Over write: allow existing files to be over-written.

    -h, -help
            Help: print SYNOPSIS and OPTIONS.

    -m, -man
            Manual: print manual page.

    -V, -version
            Version: show version number.

    -e      Expression: code to act on files name.

            May be repeated to build up code (like "perl -e"). If no -e, the
            first argument is used as code.

    -E      Statement: code to act on files name, as -e but terminated by
            ';'.

ENVIRONMENT
    No environment variables are used.

AUTHOR
    Larry Wall

SEE ALSO
    mv(1), perl(1)

DIAGNOSTICS
    If you give an invalid Perl expression you'll get a syntax error.

BUGS
    The original "rename" did not check for the existence of target
    filenames, so had to be used with care. I hope I've fixed that (Robin
    Barker).


Lucio C
Scoppiettante Seguace
Scoppiettante Seguace
Messaggi: 536
Iscrizione: venerdì 10 dicembre 2021, 18:33
Desktop: fvwm
Distribuzione: (X)Ubuntu24@home; openSUSE42.3@work
Sesso: Maschile
Località: Paneropoli

Re: eliminare caratteri da nome file con rename...

Messaggio da Lucio C »

Noto adesso (dalla firma) che sei sotto PcLinuxos_86_64 (whatever it is) e non una variante di * ubuntu.
Quella man page (che in ogni caso andrebbe chiamata con "man rename" (o "man 1 rename" nel mio caso per bypassare la preferenza per rename(2)) e' diversa da quella che ottengo io con man 1 rename sotto Xubuntu 24, evidentemente la tua distro ha installato una utility rename diversa.

Quella installata da me (che non e' quella che uso in quanto ho un mio antico script che override qualsiasi comando dello stesso nome) riporta

Codice: Seleziona tutto

AVAILABILITY
       The rename command is part of the util-linux package which can be
       downloaded from Linux Kernel Archive
       <https://www.kernel.org/pub/linux/utils/util-linux/>.
La tua man page fa anche riferimento a "espressioni perl". Non conosco la sintassi perl.
Direi che o studi la sintassi perl, o trovi qualcuno sul forum che conosce perl e quella particolare utility rename, oppure se ha un esempio ben specifico a cui intendi applicarla, posti quello e troviamo una soluzione basata su mv

Nota per i mod: forse andrebbe spostato sotto "altre distribuzioni"

PS: tutti dobbiamo essere "tecnici" :D
The reasonable man adapts himself to the world: the unreasonable one persists in trying to adapt the world to himself. Therefore all progress depends on the unreasonable man. (G.B. Shaw)
korda
Entusiasta Emergente
Entusiasta Emergente
Messaggi: 2133
Iscrizione: giovedì 24 dicembre 2020, 15:58

Re: eliminare caratteri da nome file con rename...

Messaggio da korda »

Lucio C ha scritto:
venerdì 9 maggio 2025, 16:20
[...]
La tua man page fa anche riferimento a "espressioni perl". Non conosco la sintassi perl.
Direi che o studi la sintassi perl, o trovi qualcuno sul forum che conosce perl e quella particolare utility rename, oppure se ha un esempio ben specifico a cui intendi applicarla, posti quello e troviamo una soluzione basata su mv
Molto probabilmente con espressioni Perl ci si riferisce alle espressioni regolari (di cui il linguaggio Perl è stato storicamente un punto di riferimento* ), a questo link trovi la pagina di riferimento.

[*] per esempio le espressioni (regolari) Perl (style) sono parte integrante delle opzioni disponibili su comandi come ad esempio grep o editor come ad esempio vim
Io non sono Bagheera né Akela, io non frequento la Rupe.
Io sono Kaa: faccio ballare le scimmie alle Tane Fredde.
Lucio C
Scoppiettante Seguace
Scoppiettante Seguace
Messaggi: 536
Iscrizione: venerdì 10 dicembre 2021, 18:33
Desktop: fvwm
Distribuzione: (X)Ubuntu24@home; openSUSE42.3@work
Sesso: Maschile
Località: Paneropoli

Re: eliminare caratteri da nome file con rename...

Messaggio da Lucio C »

Di solito vedo un riferimento "regex" per le "espressione regolari" di uso corrente (anche da parte mia p.es. in grep o awk). Ignoro se perl abbia qualche sottile differenza ... quelle in cui si infila il diavolo.
The reasonable man adapts himself to the world: the unreasonable one persists in trying to adapt the world to himself. Therefore all progress depends on the unreasonable man. (G.B. Shaw)
rai
Imperturbabile Insigne
Imperturbabile Insigne
Messaggi: 2909
Iscrizione: domenica 11 maggio 2008, 18:03
Desktop: plasma
Distribuzione: 22.04
Località: Palermo

Re: eliminare caratteri da nome file con rename...

Messaggio da rai »

Ciao
bella la filosofia Unix e non sono ironico. Ma se ho un tool di dimensioni ridotte (~50 kB) che da solo fa benissimo solo quella specifica cosa lì che mi serve (in questo caso rinominare gruppi di file), mi spiegate perché dovrei complicarmi la vita a creare una pipeline, lanciando una sfilza di processi differenti? ognuno dei tool della pipeline (find, grep, mv etc etc)devo padroneggiarlo comunque, non è che la linea di comando mi si riempe da sola. E se poi qualcosa va storto nella pipeline il debug risulta più complesso da fare che in un unico comando (secondo me).

Comunque sì, rename usa la sintassi di Perl per le espressioni regolari.
NB: nei seguenti suggerimenti uso la stringa "XXXX" come sostituto; se non devo sostituire ma cancellare basterà mettere la stringa vuota, cioè niente, al posto di XXXX.

Si può fare così se interessa rispettare tutte le estensioni esistenti:

Codice: Seleziona tutto

# sostituisce dal penultimo al quintultimo carattere prima della prima estensione
rename -n 's/(.+?)(.{4})(.\..+)/$1XXXX$3/' *
rename(abcdefghi.xml.p7m, abcdXXXXi.xml.p7m)

Così se interessa rispettare solo l'ultima estensione esistente:

Codice: Seleziona tutto

# sostituisce dal penultimo al quintultimo carattere prima dell'ultima estensione
rename -n 's/(.+)(.{4})(.\..+)/$1XXXX$3/' *
rename(abcdefghi.xml.p7m, abcdefghXXXXl.p7m)

Se invece non si vuole mantenere l'estensione:

Codice: Seleziona tutto

# sostituisce dal penultimo al quintultimo senza badare all'eventuale estensione
rename -n 's/(.+)(.{4})(.)/$1XXXX$3/' *
rename(abcdefghi.xml.p7m, abcdefghi.xmXXXXm)


Questo sostituisce dal secondo al quinto carattere senza rispettare estensioni:

Codice: Seleziona tutto

rename -n 's/(.)(.{4})(.+)/$1XXXX$3/' *
rename(abcdefghi.xml.p7m, aXXXXfghi.xml.p7m)
rename(ABC.xml, AXXXXml)

Anche questo sostituisce dal secondo al quinto carattere ma se il nomefile è troppo breve e la sostituzione sovrascriverebbe l'estensione, non fa la sostituzione (salta quel file):

Codice: Seleziona tutto

rename -n 's/(.)(\w{4})(.+)/$1XXXX$3/' *
rename(abcdefghi.xml.p7m, aXXXXfghi.xml.p7m)
Nota per i mod: forse andrebbe spostato sotto "altre distribuzioni"
Credo invece che stia benissimo in "Programmazione": stiamo parlando di come si scrivono le espressioni regolari avanzate (quelle che grep usa con il flag -P) e questo vale in tutte le distro, con tutte le shell
nik1404
Scoppiettante Seguace
Scoppiettante Seguace
Messaggi: 299
Iscrizione: martedì 6 novembre 2007, 18:55
Desktop: mate
Distribuzione: PcLinuxos_86_64

Re: eliminare caratteri da nome file con rename...

Messaggio da nik1404 »

@rai
perfetto...credo sia quello che cercavo :) mi studio un po la sintassi dei diversi codici (abbastanza comprensibile per me almeno in questo caso)...

ad esempio prendendo a caso gli ultimi 2 codici, provandoli su una serie di file, anche ma non solo, tipo quelli nel primo post, credo di riuscire a capire più facilmente le differenze nella sintassi utilizzando es. (\w(4)) al posto di (.(4))...(tra \w e . ) magari mentre leggo qualche manuale, purtroppo tradotto con google...

insistevo con rename proprio per i motivi indicati da @rai.... se riesco ad imparare per bene un semplice tool (ho imparato il nome giusto :) ), magari, a seconda dei nomi dei file e di quello che voglio ottenere, lancio (scrivo il codice) direttamente da terminale senza dover compilare/utilizzare script personalizzati (che peraltro uso, almeno quelli in bash)

@Lucio C
ti ringrazio comunque per l'interessamento, ma come peraltro scritto nel primo messaggio, so che si potrebbe usare find + mv ecc... ma mi sembrava strano che non ci fosse, ad esempio, un modo semplice per "invertire" in rename l'ordine (dall'inizio o dalla fine del nome) da cui contare le lettere ecc...
Lucio C
Scoppiettante Seguace
Scoppiettante Seguace
Messaggi: 536
Iscrizione: venerdì 10 dicembre 2021, 18:33
Desktop: fvwm
Distribuzione: (X)Ubuntu24@home; openSUSE42.3@work
Sesso: Maschile
Località: Paneropoli

Re: eliminare caratteri da nome file con rename...

Messaggio da Lucio C »

rai ha scritto:
venerdì 9 maggio 2025, 17:27
Nota per i mod: forse andrebbe spostato sotto "altre distribuzioni"
Credo invece che stia benissimo in "Programmazione": stiamo parlando di come si scrivono le espressioni regolari avanzate (quelle che grep usa con il flag -P) e questo vale in tutte le distro, con tutte le shell
I stand corrected. Se si parla di regex in generale va benissimo in "Programmazione".
Ma per mia educazione mi spiegate come mai la man page dell'OP e' diversa da "man 1 rename" su Xubuntu 24 ?
In altre parole il tool di cui sotto e' lo stesso sotto tutte le distro Linux "moderne" ? O ogni distro ne ha uno diverso o magari non ce l'ha ?

Come dicevo, io ho imparato Unix quando c'era "solo mv" e mi ero scritto le mie utilities "rename" e "move" (in realta' a quei tempi le usavano diversi colleghi e studenti) per svariati motivi: (a) trovavo piu' comodo separare il cambio di nome del file senza spostarlo di directory da quello di spostarlo senza cambiargli nome; (b) il che evitava anche errori indesiderati nell'uso di mv; (c) poi ai tempi avevamo in parallelo macchine Unix e un VAX/VMS e l'idea era avere un set di comandi o alias identico tra i due; (d) e poi il mio rename supportava sintassi come p.es. "rename *.ext1 =.ext2" (mutuate da un comando sotto IBM VM/CMS) per "cambiare tipo" mantenendo lo stesso nome.
rai ha scritto:
venerdì 9 maggio 2025, 17:27
bella la filosofia Unix e non sono ironico. Ma se ho un tool di dimensioni ridotte (~50 kB) che da solo fa benissimo solo quella specifica cosa lì che mi serve (in questo caso rinominare gruppi di file), mi spiegate perché dovrei complicarmi la vita a creare una pipeline ... E se poi qualcosa va storto nella pipeline il debug risulta più complesso da fare che in un unico comando (secondo me).
Se il tool esiste potrebbe anche andare bene, ai miei tempi non esisteva e ho imparato a farlo diversamente. Pero' bisogna imparare le idiosincrasie della sua sintassi (che forse fa il pari con imparare i vari comandini). E sperimentare se risolve tutti i problemi ... p.es. se i nomi dei file hanno delle parti variabili separate da separatori come in Tile-150.75-5.75_xamin_instFix_stack_allInst.fits e magari alcune delle parti che si vogliono eliminare o editare sono di lunghezza variabile ... qui comandi come cut -d o in awk la funzione split sono utilissime ... e magari l'operazione che voglio fare non e' il rename di un file, ma la creazione di un summary file che estrae certe parti del file originario o altro ... in questo caso aver imparato i comandini torna utile.

Poi non e' detto che uno debba per forza scrivere una pipeline di comandi tutti su una singola riga (cosa che quasi sempre trovo illeggibile e non faccio).
Se l'operazione va fatta molto spesso e parametricamente, metto i comandi in fila in uno script usndo variabili intermedie (e il debug lo faccio provando i comandi a mano uno a uno). Se va fatta raramente, o anche una volta sola su tanti file ... scrivo i comandi mentre li testo in un file, e poi faccio copiaincolla nel terminale p.es. prendo un esempio "pronto" a caso (N.B. questo non risolve il problema dell'OP e proabilmente di nessun altro :D )

Codice: Seleziona tutto

set d = SimulSingleBand/Data-simul7
echo $d
mkdir /tmp/CheckTtyp
foreach i ($d/*b2*fits)
 set tile = `echo $i:t | cut -f1 -d_`
 fitshead -x $i | grep TTYP > /tmp/CheckTtyp/$tile.ttyp                
end 
foreach i (/tmp/CheckTtyp/*)
 diff -q $i ~/XXL/reference.ttyp
end
rm -r /tmp/CheckTtyp    
Altrimenti detto ... se uno ti chiede un pesce, dagli una canna da pesca e insegnagli a pescare ... poi magari lui preferisce pescare col retino :D
The reasonable man adapts himself to the world: the unreasonable one persists in trying to adapt the world to himself. Therefore all progress depends on the unreasonable man. (G.B. Shaw)
nik1404
Scoppiettante Seguace
Scoppiettante Seguace
Messaggi: 299
Iscrizione: martedì 6 novembre 2007, 18:55
Desktop: mate
Distribuzione: PcLinuxos_86_64

Re: eliminare caratteri da nome file con rename...

Messaggio da nik1404 »

senza voler polemizzare...
Lucio C ha scritto:
venerdì 9 maggio 2025, 18:34
p.es. se i nomi dei file hanno delle parti variabili separate da separatori come in Tile-150.75-5.75_xamin_instFix_stack_allInst.fits e magari alcune delle parti che si vogliono eliminare o editare sono di lunghezza variabile

Codice: Seleziona tutto

-	SOSTITUISCE NEL NOME DEI FILE IL TESTO COMRESO TRA LE DUE PARENTESI QUADRE
rename -n 's/\[.*\]//' *.mp3
Lucio C ha scritto:
venerdì 9 maggio 2025, 18:34
Altrimenti detto ... se uno ti chiede un pesce, dagli una canna da pesca e insegnagli a pescare ... poi magari lui preferisce pescare col retino
notazione personale, ma questo ovviamente non potevi saperlo..
sono alla metà degli ....anta, più verso la seconda metà che la prima, ricominciare a studiare (peraltro l'informatica che non è per nulla il mio campo) rischia di farmi bruciare alcuni dei pochi isolati neuroni rimasti
Altrimenti detto...preferisco pescare pochi pesci con il retino che nessuno con la canna! :)
rai
Imperturbabile Insigne
Imperturbabile Insigne
Messaggi: 2909
Iscrizione: domenica 11 maggio 2008, 18:03
Desktop: plasma
Distribuzione: 22.04
Località: Palermo

Re: eliminare caratteri da nome file con rename...

Messaggio da rai »

Ma per mia educazione mi spiegate come mai la man page dell'OP e' diversa da "man 1 rename" su Xubuntu 24 ?
Esistono almeno due ``rename`` un rename da util-linux (l'antico rename.ul) e uno da Perl. Su Ubuntu oggi viene installata di default la versione Perl, su Arch di default c'è la versione util-linux e per avere quella Perl bisogna installare il pacchetto perl-rename. Sulle derivate di Red Hat come PCLinuxOS sarà una cosa analoga.
Se il tool esiste potrebbe anche andare bene [...] E sperimentare se risolve tutti i problemi
Finora non mi è successo (se non per miei limiti) di trovare pattern così specifici da non essere "abbinabili" con una Perl regex. Si può discutere della leggibilità (e quindi della facilità di debug) di alcune regex molto complicate ma questo è discorso diverso dal dubitare della loro efficienza.


perfetto...credo sia quello che cercavo :) mi studio un po la sintassi dei diversi codici (abbastanza comprensibile per me almeno in questo caso)...
Bene :) se ti serve altro fai un fischio, se no puoi segnare il thread come [Risolto]
:ciao:
Lucio C
Scoppiettante Seguace
Scoppiettante Seguace
Messaggi: 536
Iscrizione: venerdì 10 dicembre 2021, 18:33
Desktop: fvwm
Distribuzione: (X)Ubuntu24@home; openSUSE42.3@work
Sesso: Maschile
Località: Paneropoli

Re: eliminare caratteri da nome file con rename...

Messaggio da Lucio C »

nik1404 ha scritto:
venerdì 9 maggio 2025, 19:02
  1. senza voler polemizzare...
  2. Codice: Seleziona tutto

    -	SOSTITUISCE NEL NOME DEI FILE IL TESTO COMRESO TRA LE DUE PARENTESI QUADRE
    rename -n 's/\[.*\]//' *.mp3
    
  3. notazione personale, ma questo ovviamente non potevi saperlo..
  1. manco io
  2. immagine che essendo escapate le parentesi quadre siano vere e non facciano parte della regex ... e se nella stringa da sostituire ci sono n campi di lunghezza variabile separati da tali parentesi o qualsiasi altro separatore ? E volessi estrarre il p-esimo ? Ultimamente mi e' capitato di dover parsare dei record JSON di Openstreetmap ... si puo' fare in n modi ... io alla fine ho scritto un programma Fortran :D
  3. contronotazione personale (forse correlata con l'uso del Fortran), fa un certo effetto per la prima volta scoprirsi piu' vecchio di un Papa in carica :shy:
The reasonable man adapts himself to the world: the unreasonable one persists in trying to adapt the world to himself. Therefore all progress depends on the unreasonable man. (G.B. Shaw)
Scrivi risposta

Ritorna a “Programmazione”

Chi c’è in linea

Visualizzano questa sezione: 0 utenti iscritti e 11 ospiti