A página do manual fornece dois exemplos:
rename 's/\.bak$//' *.bak
rename 'y/A-Z/a-z/' *
Então é s ou ye então /replaceThis/withThis
O que significam os líderes s e y? Existem outras opções?
A página do manual fornece dois exemplos:
rename 's/\.bak$//' *.bak
rename 'y/A-Z/a-z/' *
Então é s ou ye então /replaceThis/withThis
O que significam os líderes s e y? Existem outras opções?
Respostas:
No primeiro caso:
rename 's/\.bak$//' *.bak
você está executando uma expressão regular nos nomes de arquivos e substituindo a parte correspondente das expressões (.bak no final de um nome de arquivo) pela segunda expressão (que está vazia).
No segundo caso:
rename 'y/A-Z/a-z/' *
você está correspondendo no espaço do padrão de expressão regular e transliterando para o destino. Em outras palavras, o intervalo AZ é alterado para o intervalo az, tornando os nomes dos arquivos em minúsculas.
Sugiro que você consulte a página de manual do sed para obter mais comandos e mais detalhes. Eu acredito que o comando 's' é usado com mais frequência. Além disso, a documentação regex (seção 7) e perl também pode ser útil. Em particular, aqui está um tutorial sobre perl e expressões regulares.
De man sed
:
s / regexp / substituição / Tente combinar regexp com o espaço do padrão. Se o sucesso Se necessário, substitua a parte correspondente à substituição. o a substituição pode conter o caractere especial e fazer referência a esse parte do espaço do padrão correspondente, e o espaço especial escapa \ 1 a \ 9 para se referir à correspondência correspondente sub-expressões no regexp. y / fonte / dest / Transliterar os caracteres no espaço padrão que aparecem na fonte para o caractere correspondente em dest.