2017-10-04 3 views
0

일부 파일의 형식을 지정하는 데 문제가 있습니다. 나는 file1.trees의 [& R]까지 [& LNP 사이에 모든 것을 삭제 한 다음 file1_edit.trees라는 새 파일을 만들려고합니다. {! // D;}/''sed 명령 : 대체 명령의 잘못된 플래그 : '/'

sed -i '' 's/[&lnP/,/[&R]/{//!d;}/g' file1.trees > file1_edit.trees 


    Error --->> sed: 1: "s/[&lnP/,/[&R]/{//!d;}/g": bad flag in substitute command: '/' 
+1

이스케이프 대괄호는 내부 업데이트를 수행 할 때 재 처리를 제거합니다. – SMA

+0

잘 모르겠지만'sed 's/[& lnP \ /,/[& R]/{\ /! d;}/g'' – Arount

+0

당신이 달성하려고하는 것을 완전히 분명하지는 않습니다 - 편집]을 사용하여 (작은) 샘플 입력과 예상 출력을 추가 하시겠습니까? 그것이 그렇듯이, 나는 당신이 라인 내에서's' (대용)하거나 라인 범위를'd' (삭제)하려고하는지 알 수 없다. –

답변

0

교체 할 가정에 "[& LNP /,/[& R]" "그러나 나는 '대체 명령에 나쁜 플래그'오류를 얻고있다 "당신의 명령이 있어야한다 :

sed 's/\[&lnP\/,\/\[&R\]/{\/\/!d;}/g' file1.trees > file1_edit.trees 

당신은 슬래시함으로써 부품을 교체/검색을 혼동 할 문자를 이스케이프해야합니다. 또한 regex (메타 문자)에서 특수 문자로 취급되는 이스케이프 문자.

또한 파일에 대한 변경을 수행 할 -i 플래그를 제거하십시오.