Hromadné přejmenování souborů s mezerami

Hromadné přejmenování souborů s mezerami
« kdy: 07. 12. 2022, 15:45:46 »
Ahoj,
Chtel bzch  rekruzivně přejmenovat všechny soubory a treba i adresáře v CLI.
Mám Ubuntu 20.04.5 LTS, postupoval jsem podle tohoto návodu(https://linuxhint.com/rename-file-ubuntu-terminal/), ale výsledek špatný.
Použití rename "rename" podle návodu.

~/pokusy/perl_rename$ ls
'soubor s mezerama.html'

$ rename 'y/ /\_/' \*

$ ls
'soubor s mezerama.html'
Nedělá to nic.

Předem dík všem za relevantní odpovědi.
« Poslední změna: 07. 12. 2022, 17:16:59 od Petr Krčmář »


_Jenda

  • *****
  • 1 550
    • Zobrazit profil
    • https://jenda.hrach.eu/
    • E-mail
Re:CLI přejmenování souboru(adresáře) s mezerami hromadně
« Odpověď #1 kdy: 07. 12. 2022, 16:13:25 »
Používám program detox, nejde to asi podle libovolného regexpu, ale třeba by ti to stačilo.

Jen mezery jde vyřešit pomocí find . | while read f; do mv "$f" "`echo "$f" | sed -re "s/../../g"`"; done, pro divočejší znaky (třeba newlines) bych už nepoužil shell ale napsal něco třeba v Pythonu.

Re:CLI přejmenování souboru(adresáře) s mezerami hromadně
« Odpověď #2 kdy: 07. 12. 2022, 16:39:58 »
Jendo díky,
sice mě to chvilku nešlo protože na konci chybí ";done".
Nejsem v tom moc kovaný :)
Na detox se podívam.
Ještě jednou dík!
« Poslední změna: 07. 12. 2022, 16:45:02 od romans2 »

Re:CLI přejmenování souboru(adresáře) s mezerami hromadně
« Odpověď #3 kdy: 07. 12. 2022, 17:03:12 »
Omlouvám se,
špatně jsem zkopíroval tvůj text. To "done" tam samořejmě máš ;)

Re:Hromadné přejmenování souborů s mezerami
« Odpověď #4 kdy: 09. 12. 2022, 11:21:15 »
Mne funguje proste:
Kód: [Vybrat]
rename 's/ /_/g' *