Como substituir a primeira linha usando sed?

Como substituir a primeira linha usando sed?

Olá, estou tentando substituir a linha de cabeçalho do meu arquivo usando o comando sed conforme mencionado abaixo,

sed "1s/.*/$new_header/" Test_file.csv 

A linha acima substitui o cabeçalho e imprime em stdout, mas como posso redirecionar a saída para um novo arquivo ou substituir os arquivos diretamente?

sed "1s/.*/$new_header/" Test_file.csv > new_file.csv 

O comando acima funciona bem, mas quero redirecionar para o mesmo arquivo.

Responder1

Você pode usar -io sinalizador para sededitar no local e também fazer backup:

sed -i.bak "1 s/.*/$new_header/" inputfile

Observe que a -iopção não é padrão e pode funcionar de maneira diferente em diferentes implementações do sed. VerComo posso conseguir portabilidade com sed -i (edição no local)?

informação relacionada