1

По сути, я хочу автоматизировать добавление чего-то в xorg.conf в нужном месте, я использовал некоторые команды, чтобы получить номер строки, которой я хочу манипулировать, но я не совсем уверен, как проходить передачу этот номер строки (как аргумент, а не что-то, что нужно манипулировать) для sed. Мне рассказали о xargs и посмотрели на него документы, но после некоторого чтения и экспериментов я не могу заставить его работать.

В случае, если кто-то может придумать лучший метод полностью, процесс, который я хочу автоматизировать, - это просто найти строку, содержащую "Identifier" и "Monitor0" (будет только один), и добавить строку под ним. Проблема с нахождением Monitor0 и манипулированием этой строкой состоит в том, что есть несколько строк с Monitor0 в.

Я получил это далеко:

fgrep -n "Monitor0" </etc/X11/xorg.conf | fgrep "Identifier" | cut -f1 -d:

Это выдает номер строки, которую я хочу передать в sed, но я не совсем уверен, как это сделать.

... или есть более простой способ, которого я не вижу?

2 ответа2

0

Я могу придумать платформу для этого в Perl-скрипте, но у меня нет такого опыта работы с sed, так что вам придется взять суть детали.

Напишите Perl-скрипт, который сначала идентифицирует строку (а не номер строки), к которой вы должны добавить. (Что-то вроде: $ line = system ("fgrep -n ...");) Затем запустите sed примерно так: sed s/$line/$line.'\n'.$linetoadd/ <$oldfile >$newfile .

0

Сортировать его (спасибо #cogs на SynIRC), решение для этой конкретной проблемы заключается в следующем:

sed '/\bIdentifier\b.*\bMonitor0\b/ a\\tOption "NoDDC"'

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