Substitua tudo de PI
para Value:
por string vazia:
sed 's/PI.*Value://'
Eu tenho um arquivo como abaixo:
mime PI Name: ISHO SUCCESS RATE RT, Value: 95.663826
scr PI Name: RRC Access Failures due to UU, Value: 0.13394141
prog PI Name: RRC Access Failures due to UU, Value: 0.16077702
sch PI Name: RRC Access Failures due to UU, Value: 0.11781933
Desejo remover o texto PI
till Value:
. Eu tentei
sed '/<PI>/,/<\/Value:>/d'
Alguma ajuda?
Substitua tudo de PI
para Value:
por string vazia:
sed 's/PI.*Value://'
Usar o comando d
em sed
excluirá a linha inteira. Além disso, não sei por que você está usando <
e >
. Talvez você esteja confundindo-os com \<
e \>
que grep
usa para denotar limites de palavras? Nesse caso, você deve saber que sed
usa \b
para os dois tipos de limites de palavras (início e fim). Então você pode escrever algo assim:
sed -i 's/\bPI\b.*\bValue:\b//' your_file
Para uma robustez extra, eu usaria perl
para quantificação lenta de .
, para que você exclua apenas o texto entre a primeira ocorrência de PI
e a primeira ocorrência de Value:
. Claro que tudo depende do seu caso de uso.
perl -pi -e 's{ \b PI \b .*? \b Value: \b}{}x' your_file
Tags text-processing sed