Procurando e substituindo pelo conteúdo do arquivo [duplicado]

0

Eu quero procurar por caracteres no arquivo e substituir por um arquivo contendo conteúdo: procure por ktr_updater no arquivo e substitua o conteúdo do arquivo de outro arquivo usando comandos Unix.

sed -i 's/ktr_updater/'"$ktrupdate"'/g' samplejob.kjb
    
por jerin 10.05.2018 / 12:22

1 resposta

1

perl -pi -e 'BEGIN{local $/; $r = <STDIN>} s/ktr_updater/$r/g
            ' file < other-file

Editaria file i n-place e s ubstitude cada ocorrência ( g lobally) de ktr_updater com $r , $r tendo sido rubricado na BEGIN ning com o que poderia ser lido de STDIN (de uma só vez, como o delimitador de registro não estava definido, declarando-o sem um valor local ly para a instrução BEGIN), tendo sido redirecionado para other-file .

Com o GNU sed ou compatível, você poderia fazer o mesmo armazenando o conteúdo do arquivo em uma variável do shell, convertê-lo em algo que seja adequado como sed s substituição do comando e chame sed com isso:

repl=$(cat other-file; echo .); repl=${repl%.}
escaped_repl=$(printf '%s\n' "$repl" | sed 's:[\/&]:\&:g;$!s/$/\/')
sed -i "s/ktr_updater/$escaped_repl/g" file
    
por 10.05.2018 / 12:33