Tentando renomear arquivos .xml no diretório unix [duplicado]

0

Tenho cerca de 5000 arquivos .xml no meu diretório unix. Quero adicionar a extensão Hist a todos os nomes de arquivos antes da extensão .xml. Por exemplo, se o arquivo for ABCD.xml, quero renomeá-lo para ABCDHist.xml. E eu quero fazer isso para todos os 5000 arquivos no meu diretório. Existe um comando de uma linha para fazer isso?

Editar

Eu estou fazendo isso em um unix (aix) caixa e ferramenta que estou usando é o cliente ssh reflexão do attachmate. Não parece que os comandos perl são executáveis lá.

    
por Unix_Beginner 13.03.2018 / 02:40

1 resposta

0

Usando a renomeação do perl:

rename -n 's/\.xml$/Hist.xml/' *.xml

(remove -n muda quando seus testes estão OK)

Existemoutrasferramentascomomesmonomequepodemounãosercapazesdefazerisso,entãotenhacuidado.

Sevocêexecutaroseguintecomando(GNU)

$file"$(readlink -f "$(type -p rename)")"

e você tem um resultado como

.../rename: Perl script, ASCII text executable

e não contendo:

ELF

então esta parece ser a ferramenta certa =)

Se não, para torná-lo o padrão (normalmente já é o caso) em Debian e derivado como Ubuntu :

$ sudo update-alternatives --set rename /path/to/rename

(substitua /path/to/rename pelo caminho do comando perl's rename .

Se você não tiver esse comando, pesquise seu gerenciador de pacotes para instalá-lo ou faça isso manualmente

Por último, mas não menos importante, esta ferramenta foi originalmente escrita por Larry Wall, o pai do Perl.

    
por 13.03.2018 / 02:43

Tags