2015-01-10 4 views
0

임 :파일에서 특수 문자열을 제거하는 방법은 무엇입니까? 다음 두 줄을 제거하는

폴더 hmm0에 texfile (hmmdefs)에서 여러 번 반복
<STREAMINFO> 1 39 
<VECSIZE> 39<NULLD><MFCC_D_A_0><DIAGC> 

.

UNUX에서 어떻게 할 수 있습니까? 명령 줄에서 다음 명령을 실행할 때

별도로마다 제거하려고했지만 :

sed "<STREAMINFO> 1 39" hmm0/hmmdefs 

나는 다음과 같은 오류가 나타납니다 당신은 삭제 d 플래그를 사용할 필요가

sed: 1: "<STREAMINFO> 1 39": invalid command code < 
+0

중복 가능성 http://stackoverflow.com/questions/5410757/delete-a-line-containing-a -specific-string-using-sed) – chooban

답변

1

을 주어진 정규식과 일치하는 라인. 그리고 정규 표현식을 / 구분 기호로 묶는 것을 잊지 마십시오.

sed "/<STREAMINFO> 1 39/d" hmm0/hmmdefs 

더 구체적으로 말하면 앵커를 추가해야합니다.

sed "/^<STREAMINFO> 1 39$/d" hmm0/hmmdefs 

^ 우리가 시작하고 $ 우리가 말 것을 주장 것을 주장한다.

예 :

$ cat file 
<STREAMINFO> 1 39 
<VECSIZE> 39<NULLD><MFCC_D_A_0><DIAGC> 
foo bar 
$ sed '/<STREAMINFO> 1 39\|<VECSIZE> 39<NULLD><MFCC_D_A_0><DIAGC>/d' file 
foo bar 
([SED 사용하여 특정 문자열을 포함하는 행을 삭제]의
+0

고맙습니다. 완벽하게 작동합니다! – KianStar

+0

나는 또 다른 질문이있다. 나는 따로 따로 글을 올리려고했지만, 나는 90 분을 기다려야한다고 말한다. 나는 "proto"라는 문자열을 포함하고 있으며, 384 번 반복된다. ''proto ''는 다른 텍스트 파일에있는 384 개의 다른 레이블에 따라 편집되어야합니다. inspect를 위해서, 두 번째 텍스트 파일의 내용이'a, sp, ..'(개개의 레이블이 개행 문자에 존재한다)라면, 내 텍스트 파일에서 첫 번째 "proto"는''a "', 두 번째 텍스트 파일은' to ""sp "'등등. 어떻게해야합니까? – KianStar

+0

기다리고 새로운 질문으로 질문하십시오. –

관련 문제