Remover data e hora de nomes de arquivos

3

Eu preciso renomear meus arquivos no Linux de date.time.filename para filename .

Exemplo:

20170310.00.35.06.Samridhi a Samridhi

    
por Samridhi Gupta 10.03.2017 / 09:52

2 respostas

2

Você pode remover a data e a hora usando uma expressão exata se o formato for consistente, então você ficará com a parte filename , não importando quais caracteres ela tenha.

rename -n 's/^\d{8}\.\d{2}\.\d{2}\.\d{2}\.//' *

remova -n após o teste para realmente renomear os arquivos.

Notas:

  • \d{8} exatamente 8 dígitos
  • \. literal .

Agradecemos a @terdon por apontar que na renomeação podemos usar \d para representar qualquer dígito em vez de [0-9]

    
por Zanna 10.03.2017 / 10:02
0

O comando mv move é o que você precisa - ele moverá um arquivo para outro diretório e / ou renomeá-lo (no mesmo diretório).

Portanto, no diretório com seu arquivo, digite:

mv -vi 20170310.00.35.06.Samridhi Samridhi .

A opção -v mostrará o que está fazendo, enquanto a opção -i irá reclamar se um arquivo com o mesmo nome já existir, permitindo que você decida se deseja substituí-lo ou não.

Há também um comando rename, mas isso é mais útil se você tiver muitos arquivos para os quais deseja alterar o nome após o padrão som. Por exemplo. arquivos chamados document.txt.001, document.txt.002, document.txt.003 ... document.txt.050; e você preferiria ter arquivos chamados document-001.txt, document-002.txt e assim por diante.

    
por Baard Kopperud 10.03.2017 / 10:00

Tags