다음과 같은 파일이 있습니다.
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
PI
까지 텍스트를 삭제하고 싶습니다. Value:
해 보았습니다.
sed '/<PI>/,/<\/Value:>/d'
도움이 필요하세요?
답변1
PI
from 의 모든 항목을 빈 문자열로 바꿉니다.Value:
sed 's/PI.*Value://'
답변2
d
in 명령을 사용하면 sed
전체 줄이 삭제됩니다. 또한 왜 <
and 를 사용했는지 잘 모르겠습니다 >
. 어쩌면 당신은 단어 경계를 나타내는 데 사용되는 및 와 혼동하고 있습니까 \<
? 이 경우 두 가지 유형의 단어 경계(시작 및 끝)의 목적을 알아야 합니다. 따라서 다음과 같이 작성할 수 있습니다.\>
grep
sed
\b
sed -i 's/\bPI\b.*\bValue:\b//' your_file
견고성을 높이기 위해 지연 양자화를 사용하여 perl
첫 번째 발생과 첫 번째 발생 .
사이의 텍스트 만 제거합니다. 물론 이는 모두 사용 사례에 따라 다릅니다.PI
Value:
perl -pi -e 's{ \b PI \b .*? \b Value: \b}{}x' your_file
답변3
패턴 사이의 여러 줄(패턴이 있는 줄 포함)을 제거하려면 아래 코드를 사용하세요.
sed "/PI/,/Value:/d" your_file
your_file을 직접 수정하려면 다음을 수행하세요.
sed -i "/PI/,/Value:/d" your_file