Infelizmente, MAGIC
não é um comando sed
, então você terá que usar outra coisa:
sed -i '0,/A/ s///' file.txt
perl -i -pe 'if (!$changed) {s/A// and $changed++;}' file.txt
echo -e "/A/ s///\nwq" | ed file.txt
$ echo -e "AsometAhingA\nsomethingA\nASomethiAng"
AsometAhingA
somethingA
ASomethiAng
$ echo -e "AsometAhingA\nsomethingA\nASomethiAng" | sed "s/A//"
sometAhingA
something
SomethiAng
$
Eu sei que sed "s/A//"
exclui a primeira correspondência em todas as linhas.
Mas quero excluir apenas a primeira correspondência em um arquivo de texto ou fluxo.
Como posso fazer isso?
Como: sed -i "MAGIC" file.txt
Contanto que seja o GNU sed (o que provavelmente é, já que é o Fedora), você deve ser capaz de fazer:
sed '0,/RE/{//d;}' file.txt
Se você tem uma versão de sed
(não-GNU) que não suporta 0 como um endereço de linha, então você pode fazer isso:
sed '/A/{s///;:a;n;ba}' file.txt
Imprime cada linha como está até encontrar uma com o padrão. Em seguida, elimina o padrão. Depois disso, faz um loop de ba
(ramificação para "a") para :a
(rótulo "a") e lê e imprime cada linha sem procurar novamente o padrão.