Use sed para modificar e executar o comando anterior

1

Eu tenho um monte de arquivos pdf que são unidos com uma linha de comando muito longa em um diretório. Alguns estão em inglês e outros em francês, diferenciados por _e.pdf e _f.pdf .

Como eles estão unidos em uma ordem específica, a linha de comando não pode ser reduzida, mas eu gostaria de modificá-la e re-executá-la, simplesmente substituindo _e por _f . Como posso usar sed (ou outro) para isso?

Digamos que o comando seja

pdfjoin file1_e.pdf file2_e.pdf file3_e.pdf 

e na história é o comando 10.

Eu tenho chegado até

echo !10 | sed 's/_e.pdf/_f.pdf/g'

que ecoa o comando que quero executar. Mas eu realmente quero rodar isso, não apenas exibir o comando.

    
por Hibiscus 11.06.2011 / 01:23

2 respostas

5

Já experimentou backticks?

'echo !10 | sed 's/_e.pdf/_f.pdf/g''

Embora não possa deixar de sentir que você deveria estar usando make .

    
por 11.06.2011 / 01:50
0

A propósito, o GNU sed tem um truque mais interessante para executar comandos:

echo !10 | sed 's/_e.pdf/_f.pdf/ge'
    
por 28.04.2012 / 14:25