Renomeia vários arquivos para seus sufixos

2

Eu preciso de uma maneira de renomear alguns arquivos que contenham espaços. Eu tenho:

>ls
Garbage Foo1.txt
Garbage Foo2.txt
Garbage Foo3.txt
Garbage Foo4.txt
...

E eu preciso de:

Foo1.txt
Foo2.txt
Foo3.txt
Foo4.txt
...

Alguma ideia de como fazer isso?

    
por lsund 21.03.2015 / 18:04

3 respostas

0

Este é um daqueles poucos casos em que o utilitário rename do pacote util-linux está pronto para a tarefa. A maioria das distribuições envia esse utilitário como rename ; no Debian, Ubuntu e derivados, rename é um utilitário diferente e mais poderoso e o utilitário util-linux é chamado rename.ul .

rename 'Garbage ' '' *.txt

Uma solução totalmente portátil é

for x in *.txt; do
  mv -- "$x" "${x#'Garbage '}"
done
    
por 21.03.2015 / 21:37
1

Com a renomeação de perl:

rename -n 's/.*\s+//' *.txt

Remova o -n para fazer isso de verdade. ( -n == execução a seco)

    
por 21.03.2015 / 18:05
0

Apenas usando o bash:

for file in ./*.txt; do mv -- "$file" "${file/Garbage /}"; done
    
por 21.03.2015 / 20:09