Как заменить первую строку с помощью sed?

Как заменить первую строку с помощью sed?

Привет, я пытаюсь заменить строку заголовка из моего файла с помощью команды sed, как указано ниже,

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

Приведенная выше строка заменяет заголовок и выводит его в stdout. Но как перенаправить вывод в новый файл или заменить его напрямую в файлах?

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

Приведенная выше команда работает нормально, но я хочу перенаправить на тот же файл.

решение1

Вы можете использовать -iфлаг, sedкоторый будет редактироваться на месте, а также создавать резервную копию:

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

Обратите внимание, что эта -iопция нестандартна и может работать по-разному в разных реализациях sed. СмотритеКак добиться переносимости с помощью sed -i (редактирование на месте)?

Связанный контент