Shell scripting: Inserindo texto em um nome de arquivo com um padrão previsível

0

Apenas usando shell script, como posso inserir texto no meio de um nome de arquivo . O arquivo tem um padrão previsível, digamos 3 letras e 3 números e eu quero inserir texto no meio desses 2 padrões . Diga ABC123 é o nome do arquivo. Como resultado, o nome do arquivo deve ser ABC.blah.123

    
por Zombies 18.04.2011 / 21:31

2 respostas

1

Você pode usar sed para alterar a string do nome do arquivo:

echo $filename | sed -r 's/^([a-zA-Z]{3})([0-9]{3})$/.blah./'

Isso significa: Pegue os 3 primeiros caracteres da string, se forem letras, adicione a string '.blah'. e adicione os 3 últimos caracteres da string, se forem números.

Se você, por exemplo, deseja renomear o arquivo que você pode fazer:

mv "$filename" "'echo $filename | sed -r 's/(^[a-zA-Z]{3})([0-9]{3})$/.blah./''"
    
por 18.04.2011 / 21:43
1

Supondo que você tenha um bash suficiente, é possível usar substrings de parâmetro:

file=ABC123
text=blah
new_file="${file:0:3}.$text.${file:3}"
    
por 18.04.2011 / 22:02