Uma string pode ser inserida em uma linha específica em um arquivo da CLI?

2

O arquivo tem o conteúdo:

[Greet]

Hello
Hi
Hola

Eu quero adicionar uma string chamada Hey para que sua posição seja depois de Hello :

[Greet]

Hello
Hey
Hi
Hola

Existe uma maneira de fazer o acima usando echo ou outras ferramentas nativas do Linux na linha de comando?

    
por Thierry Lam 26.09.2011 / 20:14

2 respostas

3

Use sed .

Como o comando sed para inserir ou anexar linhas requer uma quebra de linha, é mais fácil colocar o comando sed em um arquivo e informar sed para executar esse arquivo.

Exemplo: para inserir Hey after (every) Hello , crie o seguinte arquivo:

/Hello/a\
Hey

Em seguida, invoque sed :

sed -f appendheyafterhello.sed < sourcefile > resultfile

Aqui são mais comandos sed incluindo como inserir uma linha antes de um padrão ou em um número de linha específico.

    
por 26.09.2011 / 20:46
0

Veja algumas soluções de perl:

perl -p -i -e 'print "Hey\n" if /Hi/'  filename

ou

perl -p -i -e 'print "Hey\n" if $. == 4'  filename

ou

perl -n -i -e 'print; print "Hey\n" if /Hello/' filename
    
por 26.09.2011 / 20:37

Tags