Use o ciclo N;P;D
e tente substituir cada vez:
sed '$!N;s/\(foo\n\)#\(bar\)//;P;D' infile
isso remove o primeiro #
de #bar
apenas se seguir uma linha que termina em foo
, caso contrário, apenas imprime o espaço padrão não modificado.
Aparentemente , você Deseja descomentar os espelhos dos EUA em /etc/pacman.d/mirrorlist
, o que é uma coisa totalmente diferente:
sed -e '/United States/,/^$/{//!s/^#//' -e '}' /etc/pacman.d/mirrorlist
Isso removerá o comentário de todos os espelhos da seção dos EUA em /etc/pacman.d/mirrorlist