Jak přejmenovat soubory v adresáři, jako je například následující soubor:PMC21375.pdf.txt
, potřebuji být přejmenován na 21375.txt
. tj. musím odstranit oba PMC
a pdf
od každého názvu souboru.
Přijatá odpověď:
S rename
perlu :
rename 's/(PMC|.pdf)//g' *pdf.txt
Demo :
$ ls *txt
PMC21375.pdf.txt
$ rename -n 's/(PMC|.pdf)//g' *txt
PMC21375.pdf.txt -> 21375.txt
z shell
výzva. Je to velmi užitečné, můžete do substituce vložit nějaký kód v perlu jako já.
Můžete odstranit -n
(přepínač režimu chodu nasucho), když se vaše testy stanou platnými.
Existují další nástroje se stejným názvem, které to mohou nebo nemusí umět, takže buďte opatrní.
Pokud spustíte následující příkaz (linux
)
$ file $(readlink -f $(type -p rename))
a máte výsledek jako
.../rename: Perl script, ASCII text executable
pak se zdá, že je to ten správný nástroj =)
Pokud ne, nastavte jej jako výchozí (obvykle již tak) v Debian
a odvozeniny jako Ubuntu
:
$ sudo update-alternatives --set rename /path/to/rename
(nahraďte /path/to/rename
na cestu vašeho perl's rename
příkaz.
V neposlední řadě tento nástroj původně napsal Larry Wall, otec Perlů.