Use sed para anexar um arquivo em outro arquivo [duplicado]

0

Eu estou tentando adicionar file.bak em file.php usando este comando:

sed r file.php file.bak

Fornece a saída correta conforme desejado. No entanto, isso não salva o file.bak anexado em file.php .

Alguma ideia de como fazer isso?

    
por CryptoMiningPoolSetupYiimp 26.04.2018 / 10:28

1 resposta

1

Você não precisa de sed para isso. É o suficiente para usar cat :

cat file.bak >>file.php

Isso adicionará o conteúdo de file.bak ao final de file.php .

O sed program r file.php produzirá o conteúdo de file.php para a saída padrão para cada linha de entrada . Se file.bak tiver várias linhas, você obterá várias cópias de file.php inseridas.

Isso não é o que você deseja se quiser usar sed para anexar os dados.

Em vez disso, ignorando o fato de que cat faz um trabalho melhor aqui ,

sed '$r file.bak' file.php

Isso não lerá file.bak até alcançar a última linha de file.php . Isso tem o efeito de concatenar o conteúdo dos dois arquivos (o conteúdo de file.php virá primeiro, seguido pelo conteúdo de file.bak ).

Para gravar o resultado de volta para file.php , você pode redirecionar a saída para um novo arquivo e, em seguida, movê-lo (o modo seguro):

sed '$r file.bak' file.php >tmpfile && mv tmpfile file.php

ou, você pode usar a opção -i que algumas implementações de sed têm (a maneira insegura):

sed -i '$r file.bak' file.php
    
por 26.04.2018 / 10:38