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.