Use isto:
rename 's/\s*\([^\)]+\)//g' *.mp4
Deve ser o comando rename do perl, se não for este, você pode baixá-lo sem dependências do cpan.org
Eu tenho uma coleção de arquivos com nomes como estes:
Ace of Aces (Europe).mp4
Action Fighter (USA, Europe) (v1.2).mp4
Addams Family, The (Europe).mp4
Aerial Assault (USA).mp4
After Burner (World).mp4
Air Rescue (Europe).mp4
Aladdin (Europe).mp4
Alex Kidd - High-Tech World (USA, Europe).mp4
Alex Kidd in Miracle World (USA, Europe) (v1.1).mp4
Alex Kidd in Shinobi World (USA, Europe).mp4
Alex Kidd - The Lost Stars (World).mp4
Alf (USA).mp4
Alien 3 (Europe).mp4
Alien Storm (Europe).mp4
Alien Syndrome (USA, Europe).mp4
Altered Beast (USA, Europe).mp4
American Baseball (Europe).mp4
American Pro Football (Europe).mp4
Andre Agassi Tennis (Europe).mp4
Arcade Smash Hits (Europe).mp4
Assault City (Europe) (Light Phaser).mp4
(Eu tenho esses nomes de arquivos listados em um arquivo de texto.)
Eu tenho que ficar longe de parênteses, então gostaria de renomear os arquivos para remover os parênteses e o texto entre eles, então os nomes dos arquivos serão os seguintes:
Ace of Aces.mp4
Action Fighter.mp4
Addams Family, The.mp4
Aerial Assaul.mp4
After Burner.mp4
Air Rescue.mp4
Aladdi.mp4
Alex Kidd - High-Tech World.mp4
Alex Kidd in Miracle World.mp4
Alex Kidd in Shinobi World.mp4
Alex Kidd - The Lost Stars.mp4
Alf.mp4
Alien 3.mp4
Alien Storm.mp4
Alien Syndrome.mp4
Altered Beast.mp4
American Baseball.mp4
American Pro Footbal.mp4
Andre Agassi Tennis.mp4
Arcade Smash Hits.mp4
Assault City.mp4
Idealmente, qualquer solução deve me alertar se eu tiver, por exemplo, arquivos como
Aladdin (Europe).mp4
e Aladdin (Asia).mp4
,
ou Ghostbusters (1984).mp4
e Ghostbusters (2016).mp4
,
e não destruir nenhum arquivo.
Com zsh
, (também verifica se há conflitos):
autoload zmv # best in ~/.zshrc
zmv -n '*' '${f//[[:space:]]#[(]*[)]}'
Remova -n
ou substitua por -v
quando estiver satisfeito.
Com //
, removemos todas as ocorrências de (...)
, mas como o *
é ganancioso , haverá apenas no máximo uma correspondência. Em 1 (2) 3 (4)
, corresponderia a " (2) 3 (4)"
. Você pode tornar o *
não-ganancioso usando o sinalizador de expansão do parâmetro S
:
zmv -n '*' '${(S)f//[[:space:]]#[(]*[)]}'
Ou substitua *
por [^)]#
(0 ou mais não )
s).