GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Gibt es einen Linux-Befehl wie mv, aber mit Regex?

Wie andere bereits erwähnt haben, rename ist gut darin, aber lesen Sie die Manpage (man rename ) bevor Sie es versuchen. Es gibt mindestens zwei völlig unterschiedliche Tools namens rename und welche Sie haben, hängt von Ihrer Distribution ab. Sie falsch anzurufen kann gefährlich sein.

Hier ist die Manpage für die Perl-basierte Version von Larry Wall, die mit Ubuntu ausgeliefert wird. Sie geben ihm einen Perl-Ausdruck wie rename 's/\.sql$/.php/' *.sql

Hier ist die Manpage für die Umbenennung, die mit älteren Red Hat- und CentOS-Distributionen geliefert wird. Die Verwendung ist eine einfache String-Ersetzung wie rename .sql .php *.sql

Sie könnten auch einen Bash-Einzeiler verwenden, um jede Datei einzeln zu verarbeiten:

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

Da ist rename(1) , die keine regulären Ausdrücke verwendet, aber Ihr Problem lösen kann:

rename .sql .php *.sql

Es gibt auch mmv(1) , aber ich bin nicht damit vertraut, wie es funktioniert.


Guten Tag,

Sie können auch versuchen,

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

Oder um Regex zu verwenden, ändern Sie es leicht in

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

für ein bisschen Shell-Programmierspaß. (-:


Linux
  1. So benennen Sie Dateien unter Linux um

  2. Linux Tee-Befehl mit Beispielen

  3. Linux-Umbenennungsbefehls-Tutorial für Anfänger (mit Beispielen)

  4. JQ-Befehl in Linux mit Beispielen

  5. sed-Befehl mit Option -i schlägt auf Mac fehl, funktioniert aber unter Linux

Curl-Befehl in Linux mit Beispielen

Echo-Befehl in Linux mit Beispielen

Linux-IP-Befehl mit Beispielen

Tr-Befehl in Linux mit Beispielen

15 Linux-PS-Befehl mit Beispielen

Linux-CD-Befehl mit Beispielen