-1

Инструмент: сед

Требование: я хочу, чтобы sed нашел строку с соответствующей строкой

. Copy the line and comment one line
. Modify  the other line      
. Insert a string above the two lines.

Пример: содержимое файла:

*  soft nproc  1024
root soft nproc unlimited

Задача: Найдите строку 1024, закомментируйте ее и замените 1024 на 2048, а затем добавьте строку над ней.

Содержимое файла после модификации:

#######RAJASEKHAR#####Modified for DSD######
#* soft nproc 1024
* soft nproc  2048
root soft nproc unlimited

2 ответа2

0

Пытаться

sed -n '$i\
#######RAJASEKHAR#####Modified for DSD######\
#* soft nproc 1024\
* soft nproc  2048\
root soft nproc unlimited' old_file > new_file
0

Я предполагаю, что вы уже прочитали руководство по sed и все, что вы могли получить из сети по этой теме пару раз, вы просто не можете видеть элементы, которые важны для вас сейчас. Давайте подчеркнем их

  • во-первых, регулярные выражения (по крайней мере, самые простые), то есть регулярное выражение
  • с / регулярное выражение / строка /
  • \(subregexp\) внутри регулярного выражения
  • & внутри строкового элемента s / .../ .../
  • \n внутри строкового элемента s / .../ .../
  • \1 внутри строкового элемента s / .../ .../

И теперь вам просто нужно собрать их вместе.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .