
É possível fazer isso em um forro?
Eu tenho uma saída como esta:
"First line" - Description
" Second line" - Description
"Third line" - Description
" Fourth line" - Description
Esta entrada é gerada automaticamente.
Quero substituir a primeira ocorrência de "
(aspas + espaço) por "
(aspas) para cada linha. Se eu aplicar a substituição globalmente, ela também mudará todas as ocorrências de line" -
to line"-
, então fiquei pensando se é possível usar um sed one liner para fazer isso.
Eu tentei usar ^
assim
sed -r ':a;N;$!ba;s/(\^\" )/\"/g'
Mas não está funcionando, não substitui nada. tentei
sed -r ':a;N;$!ba;s/(^|\" )/\"/g'
e substitui todas as ocorrências. Acabei de começar a usar o sed, então não sei se estou fazendo algo errado.
O que estou perdendo aqui?
Responder1
Você está pensando demais. sed
substitui apenas a primeira instância em uma linha por padrão (sem o /g
modificador), embora você ainda queira ancorar porque não deseja tanto a primeira instância na linha quanto aquela no início da linha; e você geralmente não precisa das ações de linha explícitas que está tentando usar (por quê?).
sed 's/^" /"/'
Responder2
Uma resposta mais geral, já que não posso comentar a resposta do geekosaur - Você não colocaria ^ (âncora de início de linha). Por exemplo, se você quiser substituir a primeira ocorrência de A por B, você terá
sed 's/A/B/'
Responder3
UsandoPerl
~$ perl -pe 's/^" /"/;' file
UsandoRaku(anteriormente conhecido como Perl_6)
~$ raku -pe 's/^\" \s /"/;' file
Entrada de amostra:
"First line" - Description
" Second line" - Description
"Third line" - Description
" Fourth line" - Description
Exemplo de saída (ambos exemplos de código):
"First line" - Description
"Second line" - Description
"Third line" - Description
"Fourth line" - Description
https://perldoc.perl.org/perlre
https://perldoc.perl.org/perltrap#Sed-Traps
https://docs.raku.org/linguagem/regexes