
Eu tenho dois arquivos com script, digamos file1
e file2
. Quero pegar o conteúdo de file1
, alterar o caractere a
para A
in file1
e anexar a saída file2
sem modificar o conteúdo de file1
. Estou tentando com:
sed -i ‘s/a/A/g’ file1 >> file2
mas isso apenas muda a
para A
in file1
.
Responder1
Basta remover a -i
bandeira:
sed 's/a/A/g' file1 >> file2
O -i
sinalizador é usado para editar o arquivo especificado no local, portanto, faz exatamente isso para file1
. Deman sed
:
-i[SUFFIX], --in-place[=SUFFIX]
edit files in place (makes backup if SUFFIX supplied)
O motivo pelo qual você não obtém nada anexado file2
ao usar -i
é que ele >>
é usado para anexar stdout
ao arquivo especificado. Mas como file1
é editado devido a -i
, nenhuma saída é gerada, portanto nada é anexado a file2
.