GNU/Linux >> Znalost Linux >  >> Linux

Existuje linuxový příkaz jako mv, ale s regulárním výrazem?

Jak již uvedli ostatní, rename je v tom dobrý, ale přečtěte si manuálovou stránku (man rename ), než to zkusíte. Existují nejméně dva zcela odlišné nástroje nazvané rename a který z nich budete mít, bude záviset na vaší distribuci. Nesprávné volání může být nebezpečné.

Zde je manuálová stránka pro verzi založenou na perlu od Larryho Walla, která je dodávána s Ubuntu. Dáte mu perlský výraz jako rename 's/\.sql$/.php/' *.sql

Zde je manuálová stránka pro přejmenování, která se dodává se staršími distribucemi Red Hat a CentOS. Použití je jednoduchá substituce řetězce jako rename .sql .php *.sql

Můžete také použít bash one-liner ke zpracování každého souboru jeden po druhém:

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

Je tam rename(1) , který nepoužívá regulární výrazy, ale může vyřešit váš problém:

rename .sql .php *.sql

Je zde také mmv(1) , ale nevím, jak to funguje.


Dobrý den,

Můžete také zkusit zadat

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

Nebo aby používal regulární výraz, změňte jej mírně na

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

pro trochu zábavy s kódováním shellu. (-:


Linux
  1. Jak přejmenovat soubory v Linuxu

  2. Příkaz linuxové hlavy s příklady

  3. JQ Command v Linuxu s příklady

  1. Příkaz přejmenovat Linux

  2. Příkaz sed s volbou -i selže na Macu, ale funguje na Linuxu

  3. Přejmenování souborů v linuxu pomocí regulárního výrazu

  1. wc Linux Command s příklady

  2. Linux Tee Command s příklady

  3. Linux přejmenování Command Tutorial pro začátečníky (s příklady)