fbpx

Comandos Linux – Comando rename

Comando de renomeação do Linux

comando renomear

Em sistemas operacionais do tipo Unix, o comando rename renomeia vários arquivos, usando expressões regulares . Foi escrito por Larry Wall , criador da linguagem de programação Perl .

Descrição

renomear renomeia os arquivos nomeados de acordo com a expressão regular perlexpr .

Se um determinado arquivo não for modificado pela expressão, ele não será renomeado. Se nenhum nome de arquivo for fornecido na linha de comando , os nomes dos arquivos serão lidos via entrada padrão .

Sintaxe

renomear [-v] [-n] [-f] perlexpr [ arquivos ]

Opções

-v , –verboseDetalhado: imprime os nomes dos arquivos renomeados com sucesso.
-n , –no-actNenhuma ação: mostre quais arquivos teriam sido renomeados.
-f , –forceForçar: sobrescrever arquivos existentes.

Expressões Perl: uma visão geral rápida

O argumento perlexpr é uma expressão regular usada pela linguagem de programação Perl. As expressões regulares do Perl são um assunto complexo e diferenciado, mas aqui está uma breve visão geral:

Substituição

Para substituir uma expressão por outra, a forma de perlexpr é:

s / expr1 / expr2 / [gi]

… em que expr1 é uma expressão que descreve a sequência que você deseja substituir e expr2 é uma expressão que descreve a sequência que você deseja substituir. Por exemplo,

s / bobo / tolo /

… substituiria a primeira ocorrência da string ‘ bobo ‘ pela string ‘ tolo ‘.

Para executar a substituição global (ou seja, substituir expr2 por expr1 quantas vezes ocorre expr1 ), adicione o modificador g no final da expressão de substituição. Por exemplo:

s / bobo / tolo / g

… substituiria toda ocorrência de ‘ bobo ‘ por ‘ tolo ‘, não importa quantas vezes isso ocorra.

Para executar a correspondência de uma maneira que não diferencia maiúsculas de minúsculas, adicione um i no final da expressão de substituição. Por exemplo,

s / bobo / tolo / i

… substituiria ‘ SILLY ‘, ‘ Silly ‘ ou ‘ siLLY ‘ por ‘ tolo ‘.

Os modificadores g e i podem ser especificados na mesma expressão, para executar a substituição global que não diferencia maiúsculas de minúsculas, por exemplo:

s / bobo / tolo / soldado

Metacaracteres

Um metacaractere é um caractere (ou caracteres) que possui um significado especial. Eles podem ser usados ​​em uma expressão para definir com precisão quais seqüências de caracteres devem ser correspondidas e substituídas.

Estes são alguns metacaracteres comuns que podem ser usados ​​em uma expressão Perl:

metacaracteressignificado
^Corresponde ao início de uma sequência.
$Corresponde ao final de uma sequência.
.Corresponde a qualquer caractere, exceto uma nova linha .
*Corresponde às ocorrências do caractere anterior, ou grupo de caracteres, zero ou mais vezes.
+Corresponde às ocorrências do caractere anterior, ou grupo de caracteres, uma ou mais vezes.
?Corresponde às ocorrências do caractere anterior, ou grupo de caracteres, zero ou uma vez.

Se usado após um modificador de repetição, ‘ ‘especifica que a menor correspondência possível deve ser usada. Por exemplo, ‘ a {2,4}? ‘corresponderá a’ aa ‘mesmo que’ aaa ‘e’ aaaa ‘também correspondam. Veja modificadores de repetição, abaixo.

|Alternação; comporta-se como um ‘ OU ‘ booleano . Por exemplo, ‘ manteiga | geléia ‘ combinará com manteiga ou geléia .
( … )Agrupamento. Por exemplo, ‘ (por exemplo | le) gs ‘ corresponderá a ‘ ovos ‘ ou ‘ pernas ‘.
[ … ]Um conjunto de caracteres. Por exemplo, ‘ [abc] ‘ corresponderá a ‘ a ‘ ou ‘ b ‘ ou ‘ c ‘. Os conjuntos de caracteres podem ser definidos como:

caracteres ]Corresponde a qualquer um dos caracteres listados.
– ]Corresponde a qualquer em um intervalo de caracteres entre x e y , inclusive. Por exemplo, ‘ [ce] ‘ corresponderá a c , d ou e e ‘ [az] ‘ corresponderá a qualquer letra minúscula.
[^ caracteres ]Não corresponde a caracteres ; em outras palavras, corresponde a qualquer caractere, exceto os listados. Também pode negar um intervalo de caracteres; por exemplo, ‘ [^ ad] ‘ corresponde a qualquer caractere, exceto a , b , c ou d .
[\ -]Corresponde ao caractere hífen (”  “).
– – ]Vários intervalos de caracteres podem ser colocados em um conjunto de caracteres consecutivamente. Por exemplo, ‘ [a-zA-Z] ‘ corresponde a qualquer letra, maiúscula ou minúscula.
m [ , [ n ]] }Um modificador de repetição, que corresponde, pelo menos, m e no máximo n dos caracteres precedentes. Por exemplo, ‘ a {2} ‘ corresponderá a ‘ aa ‘, ‘ a {2,4} ‘ corresponderá a ‘ aa ‘, ‘ aaa ‘ ou ‘ aaaa ‘ e ‘ b {2,} ‘ corresponderá a dois ou mais caracteres b consecutivos .
\Escapa um metacaractere para que seja tratado literalmente. Por exemplo, ‘ \ + ‘ corresponde a um literal ‘ + ‘ (em vez de o símbolo de mais ter seu significado especial de metacaractere).
\ tCorresponde a um caractere de tabulação.
\ nCorresponde a um caractere de nova linha.
\ rCorresponde a um caractere de retorno de carro .
\WCorresponde a qualquer caractere único classificado como caractere “palavra” ( caractere alfanumérico ou sublinhado ‘ _ ‘).
\WCorresponde a qualquer caractere que não seja “palavra”.
\ sCorresponde a qualquer caractere de espaço em branco único (espaço, guia, nova linha).
\ SCorresponde a qualquer caractere que não seja um espaço em branco.
\ dCorresponde a qualquer caractere de dígito. Essa opção é equivalente ao conjunto de caracteres ‘ [0-9] ‘
\ DCorresponde a qualquer caractere que não seja um dígito.
\ bUma asserção de “largura zero” que corresponde a qualquer “limite de palavras”.
\ BUma asserção de “largura zero” correspondente a qualquer limite que não seja “palavra”.

Tradução

A tradução é semelhante à substituição. Ele pode ser usado para converter uma string para outra, caractere por caractere. As expressões de tradução são especificadas da seguinte maneira:

y / charset1 / charset2 /

… onde cada caractere no conjunto charset1 , em ordem, está a ser traduzido para o personagem correspondente do conjunto de caracteres charset2 . (Esses conjuntos são exatamente como os conjuntos de caracteres acima, exceto que você não precisa colocá-los entre colchetes.) Por exemplo, a expressão de tradução:

y / abc / def /

… traduziria cada letra a para a letra d , todo b para um e , etc.

Isso também funciona para os conjuntos de caracteres definidos como intervalos. Por exemplo:

y / az / AZ /

Traduzia todas as letras minúsculas em seu equivalente maiúsculo.

Exemplos

renomeie / \ .jpeg $ /. jpg / '*

Renomeie todos os arquivos com a extensão ” .jpeg ” para que tenham a extensão ” .jpg “.

encontre -type f -name '* .jpg' | renomear 's / feriado / lua de mel /'

Para todos os arquivos com a extensão ” .jpg “, se eles contiverem a sequência ” feriado “, substitua-a por ” lua de mel “. Por exemplo, este comando renomeia o arquivo ” ourholiday001.jpg ” para ” ourhoneymoon001.jpg “.

Este exemplo também ilustra como usar o comando find para enviar uma lista de arquivos ( -tipo f ) com a extensão .jpg ( -name ‘* .jpg’ ) para renomear por meio de um canal ( | ). renomear então lê sua lista de arquivos a partir da entrada padrão.

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

Renomeie todos os arquivos correspondentes a ” * .bak ” para remover o nome do arquivo de sua extensão. Por exemplo, este comando renomeia o arquivo ” project.bak ” para ” project “.

renomeie 'y / AZ / az /' *

Renomeie os arquivos para que todas as letras maiúsculas sejam alteradas para seus equivalentes em minúsculas.

mv – Mova arquivos e diretórios de um local para outro e, opcionalmente, renomeie-os.
perl – Intérprete para a linguagem de programação Perl.

21 de novembro de 2019

Sobre nós

A Linux Force Brasil é uma empresa que ama a arte de ensinar. Nossa missão é criar talentos para a área de tecnologia e atender com excelência nossos clientes.

CNPJ: 13.299.207/0001-50
SAC:         0800 721 7901

[email protected]

Comercial  Comercial: (11) 3796-5900

Suporte:    (11) 3796-5900
[email protected]

Copyright © Linux Force Security  - Desde 2011.