Используя awk (победитель удобочитаемости):
кратко:
awk 'NR==1{print tolower($0);next}1' file.csv
или используя тернарный оператор:
awk '{print (NR==1) ? tolower($0): $0}' file.csv
или используя Операторы if / else:
awk '{if (NR==1) {print tolower($0)} else {print $0}}' file.csv
Чтобы изменить файл по-настоящему:
awk 'NR==1{print tolower($0);next}1' file.csv | tee /tmp/temp
mv /tmp/temp file.csv
Для вашей информации, sed , используя вместо переключатель редактирования -i
сделайте то же самое: он использует временный файл под капотом.
Вы можете проверить это, используя:
strace -f -s 800 sed -i'' '...' file