Estou procurando um script, utilitário ou comando para renomear arquivos em lote de um determinado esquema de nomenclatura [fechado]

-1

Uma amostra dos arquivos que eu preciso renomear:

microsoft-windows-languagefeatures-basic-bs-latn-ba-package_100e5dc9f1eb0cc3f9ef59c60dd24543827a6c48.cab
microsoft-windows-languagefeatures-basic-bn-in-package_679f41a31fa39e91da733edba47cc8e3cd8013d4.cab
microsoft-windows-languagefeatures-basic-bn-bd-package_81a64b49f357d8eef17d8797ddba200c04c9805e.cab
microsoft-windows-languagefeatures-basic-bg-bg-package_59a6ca257ed175d72efc6718f153837fb48d1890.cab
microsoft-windows-languagefeatures-basic-az-latn-az-package_943c512fe9e0917c6116d4f81a764f0144d8a67f.cab
microsoft-windows-languagefeatures-basic-as-in-package_e8363efa6389494eedc61f26057ab333d8c11a55.cab
microsoft-windows-languagefeatures-basic-ar-sa-package_fc97e593423319e11b7521f8076a5de21348e831.cab
microsoft-windows-languagefeatures-basic-af-za-package_b498b23dfb0271d34850f331fdaeffacf3d97ed5.cab
microsoft-windows-languagefeatures-basic-de-de-package_34de150bd496f5e06b7c9eee2227650c54b11a27.cab
microsoft-windows-languagefeatures-basic-da-dk-package_31a2dd00b08c9d7cdaba85c5c60777eaa75166bf.cab
microsoft-windows-languagefeatures-basic-cy-gb-package_065ebd6f0adcc91feb98e943b4599cc6b656ed05.cab
microsoft-windows-languagefeatures-basic-cs-cz-package_2eac7ee66be70c97d357ca70101e0c93af2387f1.cab
microsoft-windows-languagefeatures-basic-ca-es-package_437de767fb26329de81b3a92cd95e970a6d1e451.cab

Eu só quero manter a parte "basic-langcode", mas não sei como renomear os arquivos em lote para alcançar esse resultado.

Também estou procurando fazer isso por meio de um método que funciona no Windows, Linux e MacOS, mas isso é um requisito de bônus.

    
por BT50 28.12.2017 / 23:52

2 respostas

2

Já deu uma olhada no "Bulk Rename Utility"? Eu usei se para renomear vários arquivos e achei muito útil e flexível. Demora um pouco para se acostumar, mas ele vem com ótimas instruções e é razoavelmente fácil de usar. De uma chance! Pode ser encontrado aqui - link

Oh! e a propósito ... é grátis!

    
por 29.12.2017 / 01:29
0

No Linux, o renomeia o pacote (costumava estar nos pacotes Pacote Perl ) possui um script / utilitário chamado prename ( no Debian é o comando rename ), e sendo um script perl você deve ser capaz para executá-lo em qualquer coisa. Pode fazer isso:

NAME
   rename - renames multiple files

SYNOPSIS
   rename [ -v ] [ -n ] [ -f ] perlexpr [ files ]

DESCRIPTION
   "rename" renames the filenames supplied according to the rule specified as
   the first argument.  The perlexpr argument is a Perl expression which is
   expected to modify the $_ string in Perl for at least some of the filenames
   specified.  If a given filename is not modified by the expression, it will
   not be renamed.  If no filenames are given on the command line, filenames
   will be read via standard input.

   For example, to rename all files matching "*.bak" to strip the extension,
   you might say

           rename 's/\.bak$//' *.bak

   To translate uppercase names to lower, you'd use

           rename 'y/A-Z/a-z/' *

A maneira mais fácil é encontrar algo específico sobre os nomes de arquivos que você deseja "apagar", talvez executá-los duas vezes para apagar o & coisas à direita. A maneira difícil é encontrar uma correspondência perlexpr como talvez um traço, em seguida, duas letras minúsculas, em seguida, um traço, seguido opcionalmente por coisas, em seguida, outro traço dois caracteres minúsculos caracteres traço e tê-lo renomear apenas a correspondência.

    
por 29.12.2017 / 01:17