2013-06-25 3 views
8

일치하지 라인을 유지, 경기 후 라인의 끝 삭제 : "-MIB"문자열을 포함하는 각 라인에서나는 다음과 같은 형식의 파일이

interesting text-MIB blah blah blah 
VERY INTERESTING TEXT 
interesting text-MIB blah blah blah 

을, 나는 텍스트를 삭제하고 싶습니다 이 문자열 다음에 줄 끝까지. 그것은 또한 내 패턴이 발견되지 않는 행을 삭제하는 것이

sed -i -n -e 's/-MIB.*$/-MIB/p' ./myfile 

내 문제는 다음과 같습니다

다음 명령은 의도 한대로 작동하는 것 같다. 여기에 "매우 흥미로운 텍스트"라는 줄이 삭제됩니다. 나는 정말로 sed에 익숙하지 않다. 내가 도대체 ​​뭘 잘못하고있는 겁니까? 이런 종류의 치료에 적합한가?

답변

3

고객님의 sed을 (를) 편집했습니다. 원본 파일의 변경을 할 것이며, 박 확장에 원본 파일의 백업을한다

1

sed-n 옵션은 기본 인쇄를 억제 - 여기

sed -i.bak 's/-MIB.*$/-MIB/g' ./myfile 

,

-i를이 시도 나중에 sed 문 뒤에 p 옵션을 입력하면 나중에 사용할 수 있습니다.

위 예제에서 sed은 모든 행의 인쇄를 억제 한 다음 대체가 성공적으로 완료된 행만 인쇄하는 것입니다. 결과적으로 대체가 수행되지 않은 행은 절대로 인쇄되지 않습니다.

sed -ie 's/-MIB.*$/-MIB/' ./myfile 
+0

감사를 추가 설명 :

당신은 당신의 명령에서 -n 옵션 p를 제거해야합니다. –

관련 문제