Ordenado (obrigado #cogs no SynIRC), a solução para este problema em particular é a seguinte:
sed '/\bIdentifier\b.*\bMonitor0\b/ a\tOption "NoDDC"'
Caso alguém consiga pensar em um método melhor, o processo que quero automatizar é encontrar a linha que contém "Identifier" e "Monitor0" (haverá apenas uma) e adicionar uma linha abaixo dela. O problema de apenas encontrar o Monitor0 e manipular essa linha é que existem várias linhas com o Monitor0.
Eu cheguei até aqui:
fgrep -n "Monitor0" </etc/X11/xorg.conf | fgrep "Identifier" | cut -f1 -d:
Isso mostra o número da linha que estou querendo passar para o sed, mas não tenho certeza de como fazer isso.
... ou existe uma maneira mais simples que eu não esteja vendo?
Eu posso pensar em um framework para fazer isso em um script perl, mas eu não tenho que ter experiência com sed então você teria que tomar o núcleo dos detalhes.
Escreva um script perl que primeiro identifique a linha (não o número da linha) na qual você deve anexar. (Algo como: $ line = system ("fgrep -n ...");)
Então execute sed assim: sed s/$line/$line.'\n'.$linetoadd/ <$oldfile >$newfile
.