Замена строки на основе номера строки

У меня есть ситуация, когда я хочу заменить определенную строку во многих файлах

Замените строку AAA другой строкой BBB, но есть много строк, начинающихся с AAA или заканчивающихся AAA, и я хочу заменить только один на линии 34 и сохранить других в неприкосновенности.

Можно ли указать номер строки, для всех файлов эта строка точно соответствует 34-й строке.

Вы можете указать номер строки в sed или NR (номер записи) в awk.

awk 'NR==34 { sub("AAA", "BBB") }' 

или используйте FNR (запись номера файла), если вы хотите указать более одного файла в командной строке.

 awk 'FNR==34 { sub("AAA", "BBB") }' 

или

 sed '34s/AAA/BBB/' 

сделать замену на месте с помощью sed

 sed -i '34s/AAA/BBB/' file_name