GNU/Linux >> Tutoriels Linux >  >> Linux

Existe-t-il une commande linux comme mv mais avec regex ?

Comme d'autres l'ont mentionné, rename est bon dans ce domaine, mais lisez la page de manuel (man rename ) avant de l'essayer. Il existe au moins deux outils entièrement différents appelés rename et celui que vous avez dépendra de votre distribution. Les appeler incorrectement peut être dangereux.

Voici la page de manuel de la version basée sur perl de Larry Wall fournie avec Ubuntu. Vous lui donnez une expression perl comme rename 's/\.sql$/.php/' *.sql

Voici la page de manuel pour le changement de nom fourni avec les anciennes distributions Red Hat et CentOS. L'utilisation est une simple substitution de chaîne comme rename .sql .php *.sql

Vous pouvez également utiliser une doublure bash pour traiter chaque fichier un à la fois :

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

Il y a rename(1) , qui n'utilise pas d'expressions régulières, mais peut résoudre votre problème :

rename .sql .php *.sql

Il y a aussi mmv(1) , mais je ne sais pas comment cela fonctionne.


Bonjour,

Vous pouvez également essayer d'entrer

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

Ou pour le faire utiliser les regex, changez-le légèrement en

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

pour un peu de plaisir de codage shell. (- :


Linux
  1. Comment renommer des fichiers sous Linux

  2. Commande Linux Tee avec exemples

  3. Tutoriel de commande de renommage Linux pour les débutants (avec exemples)

  4. Commande principale Linux avec exemples

  5. Commande JQ sous Linux avec exemples

Commande Curl sous Linux avec des exemples

Commande Echo sous Linux avec exemples

Commande Linux ip avec exemples

Commande Tr sous Linux avec des exemples

15 Commande Linux ps avec exemples

Commande de CD Linux avec exemples