2017-01-16 1 views
2

문자열 "???"의 모든 발생을 제거하는 방법 파일을 저장하고 저장 하시겠습니까? 지금까지유닉스 모든 문자를 삭제하고 저장하십시오

내 방식 :

cat file.txt | sed -ie '/s/???//' file.txt 

나는 다음과 같은 오류가 그러나 :

sed -i 's/???//g' file.txt 

사용할 필요는 없다 :

sed: -e expression #1, char 4: unknown command: `?' 
+0

@anubhava 파일 내용 부분 –

+1

다음을 사용하십시오 :'sed '/ ??? // g'file.txt' – anubhava

+2

@anubhava 답변으로 'cat ... | * 사용하지 않아야합니다 :). 그것이 내가 기여해야하는 전부이며, 그 자체로 답할 가치가 없습니다. 감사! – cxw

답변

3

는이 sed 명령을 사용할 수 있습니다 cat 여기에 sed은 파일을 직접 조작하고 i를 저장할 수 있습니다. t 인라인.

또한 다른 정규식 맛과는 달리 특별한 정규식 메타 문자로 ?을 취급하지 않습니다 sed의 기본 정규식 엔진입니다 BRE (기본 정규 표현식이) 따라서 여기 ?을 탈출 할 필요가 없습니다 있습니다.

+1

나는 물음표를 벗어날 필요가 없을뿐 아니라 ** 도망쳐서는 안된다 고 생각한다. 나는 sed에서 많이 경험하지는 않지만 [이 문서] (https://www.gnu.org/software/sed/manual/html_node/Regular-Expressions.html)에서 나는 이스케이프 처리 (백 슬래시 접두사)를 물음표가 있으면 실제로 그것을 정규 표현식 연산자로 바꿀 것입니다. 최소한 이것은 GNU sed에 적용됩니다. – user1934428

+0

예, GNU sed의 경우 기본 BRE 모드에서 물음표를 벗어나지 마십시오. – anubhava

관련 문제