awk - изменение после многострочного контекста

Вы не упомянули какой-либо конкретный дистрибутив, но я думаю, что установка OEM - это то, что вы ищете. Это позволяет вам установить систему таким образом, чтобы конечный пользователь мог установить имя пользователя, пароль и другие настройки при первой загрузке машины после установки.

Вот документация Ubuntus по теме https://help.ubuntu.com/community/Ubuntu_OEM_Installer_Overview

Вот также хорошее объяснение темы http://segfault.linuxmint.com/2013/ 05 / OEM-ISO-объяснение /

3
17.11.2018, 07:42
2 ответа

@Dababi ответ идеален.

Другой вариант с gnu-sed

sed -zr 's/(Line2\nLineEXTRA\nLine)3/\1NEW/g' ex

( sed -z отбрасывает весь файл, поэтому у нас есть прямой доступ к многострочному контексту. Этого решения следует избегать для гигабайтных файлов)

{{ 1}}
2
27.01.2020, 21:13

Этот код даст вам желаемый результат

awk '/Line2/ { 
   print; getline; if ($0 == "LineEXTRA"){print;getline; sub(/3/,"NEW")}
}
{ print }' file
4
27.01.2020, 21:13

Теги

Похожие вопросы