Mam plik jak poniżej:
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
Chcę usunąć tekst PI
do Value:
. próbowałem
sed '/<PI>/,/<\/Value:>/d'
Jakaś pomoc?
text-processing
sed
khalil saad
źródło
źródło
PI
iValue:
występują na różnych liniach?Użycie
d
polecenia wsed
spowoduje usunięcie całej linii. Nie jestem też pewien, dlaczego używasz<
i>
. Być może mylisz je,\<
a\>
togrep
oznacza granice słów? W takim przypadku powinieneś wiedzieć, żesed
używa\b
obu rodzajów granic słów (początku i końca). Możesz więc napisać coś takiego:Dla dodatkowej niezawodności użyłbym
perl
do leniwej kwantyfikacji.
, aby usunąć tekst tylko między pierwszym wystąpieniemPI
a pierwszym wystąpieniemValue:
. Oczywiście wszystko zależy od twojego przypadku użycia.źródło
Użyj poniższego kodu, aby usunąć wiele linii między wzorami (w tym linie ze wzorami):
Jeśli chcesz bezpośrednio zmodyfikować swój plik:
źródło