Batch rinominare il file per rimuovere tutto dopo il &


0

Ho una directory piena di file come questo:

Joe Schmidt Kapitel 10 - Teil 7.mp4 & amp; content_uid = 359 & amp; hash = 8353ee953b9bb79cebf58cc46d7dc085 & random = 190644109

Un sacco di cose sul web sono state mantenute alla fine quando li ho scaricati, ora mi piacerebbe rimuoverlo in questo modo:

Joe Schmidt Kapitel 10 - Teil 7.mp4

Sono su macOS, ho il comando di rinomina, ecc.

Ho provato quanto segue ma non ha funzionato così bene:

$ rename --verbose 's/\&\w*//' *

'Joe Schmidt_ Kapitel 10 - Teil 7.mp4 & amp; content_uid = 359 & amp; hash = 8353ee953b9bb79cebf58cc46d7dc085 & random = 190644109' rinominato in 'Joe Schmidt_ Kapitel 10 - Teil 7.mp4 = 359 & amp; hash = 8353ee953b9bb79cebf58cc46d7dc085 & random = 190644109'

rename --verbose 's/\&\.*//' *

non ha funzionato neanche.

E dal momento che ci sono più e commerciali - Voglio uccidere tutto dopo la prima e commerciale - Non posso nemmeno usare il taglio:

for i in $(find . -type f)
do
mv "$i" `echo $i | cut -d "&" -f1`
done

produce:

mv: rinomina ./Joe a ./Joe: nessun file o directory di questo tipo   mv: rinomina Schmidt_ in Schmidt_: nessun file o directory di questo tipo   mv: rinomina Kapitel in Kapitel: nessun file o directory di questo tipo   mv: rinomina 10 a 10: nessun file o directory di questo tipo   mv: rinomina - a -: nessun file o directory di questo tipo   mv: rinomina Teil in Teil: nessun file o directory di questo tipo   mv: rinomina 7.mp4 & amp; content_uid = 359 & amp; hash = 8353ee953b9bb79cebf58cc46d7dc085 & random = 190644109 a 7.mp4: nessun file o directory simile

Risposte:



0

Non elegante, ma dovrebbe funzionare. La magia è tra virgolette :)

ls *\&* | (
  while read F
  do
    TGT="$(echo $F | cut -d'&' -f1)"
    echo mv "$F" "$TGT"
  done
)

Si prega di rimuovere il echo armare questo script.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.