¿Cómo reemplazar la primera línea usando sed?

¿Cómo reemplazar la primera línea usando sed?

Hola, estoy intentando reemplazar la línea de encabezado de mi archivo usando el comando sed como se menciona a continuación.

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

La línea anterior reemplaza el encabezado y se imprime en la salida estándar, pero ¿cómo puedo redirigir la salida a un archivo nuevo o reemplazar los archivos directamente?

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

El comando anterior funciona bien, pero quiero redirigir al mismo archivo.

Respuesta1

Puede usar -iuna bandera sedque editará en el lugar y también realizará una copia de seguridad:

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

Tenga en cuenta que la -iopción no es estándar y puede funcionar de manera diferente en diferentes implementaciones de sed. Ver¿Cómo puedo lograr portabilidad con sed -i (edición in situ)?

información relacionada