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

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

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

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

One Solution collect form web for “Замена строки на основе номера строки”

Вы можете указать номер строки в 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 
  • Вставить текст внутри строки в конце строки данных
  • bash заменить часть строки на основе местоположения
  • Разбор нескольких разделов данных в отдельные файлы
  • заменить столбец csv-файла на столбец из другого файла
  • Фильтровать столбцы на основе значения другого столбца
  • Чтение и добавление в файл одновременно с сохранением конца строки
  • Извлечь конкретную вещь из каждой строки в столбце
  • шаблон поиска grep в нескольких файлах и вывод в разные файлы
  • Добавление соответствующих номеров в диапазон
  • команда sed внутри ожидать скрипт send command
  • Цветной вывод меньше при обращении к файлу журнала
  • Linux и Unix - лучшая ОС в мире.