GNU/Linux >> Linux Esercitazione >  >> Linux

Esiste un comando linux come mv ma con regex?

Come altri hanno già detto, rename è bravo in questo, ma leggi la pagina man (man rename ) prima di provarlo. Ci sono almeno due strumenti completamente diversi là fuori chiamati rename e quale avrai dipenderà dalla tua distribuzione. Chiamarli in modo errato può essere pericoloso.

Ecco la pagina man per la versione basata su perl di Larry Wall fornita con Ubuntu. Gli dai un'espressione perl come rename 's/\.sql$/.php/' *.sql

Ecco la pagina man per la ridenominazione fornita con le distribuzioni precedenti di Red Hat e CentOS. L'utilizzo è una semplice sostituzione di stringhe come rename .sql .php *.sql

Puoi anche usare un one-liner bash per elaborare ogni file uno alla volta:

$ for f in *.sql; do mv -i "$f" "${f%%.*}.php"; done

C'è rename(1) , che non usa espressioni regolari, ma può risolvere il tuo problema:

rename .sql .php *.sql

C'è anche mmv(1) , ma non ho familiarità con il suo funzionamento.


Buongiorno,

Puoi anche provare a inserire

for i in $(\ls -d *.sql)
do
mv $i $(echo $i | sed -e 's/\.sql$/\.php/')
done

O per farlo usare regex cambialo leggermente in

for i in $(\ls -d | egrep -e '.*\.sql')
do
mv $i $(echo $i | sed -e 's/\.sql$/\.php/')
done

per un po' di divertimento nella programmazione della shell. (-:


Linux
  1. Come rinominare i file in Linux

  2. Comando Tee Linux con esempi

  3. Tutorial sui comandi di ridenominazione di Linux per principianti (con esempi)

  4. Comando JQ in Linux con esempi

  5. Comando di ridenominazione di Linux

Comando Curl in Linux con esempi

Echo Command in Linux con esempi

Comando IP Linux con esempi

Comando Tr in Linux con esempi

15 Comando Linux ps con esempi

Comando CD Linux con esempi