문자열 "???"의 모든 발생을 제거하는 방법 파일을 저장하고 저장 하시겠습니까? 지금까지유닉스 모든 문자를 삭제하고 저장하십시오
내 방식 :
cat file.txt | sed -ie '/s/???//' file.txt
나는 다음과 같은 오류가 그러나 :
sed -i 's/???//g' file.txt
사용할 필요는 없다 :
sed: -e expression #1, char 4: unknown command: `?'
문자열 "???"의 모든 발생을 제거하는 방법 파일을 저장하고 저장 하시겠습니까? 지금까지유닉스 모든 문자를 삭제하고 저장하십시오
내 방식 :
cat file.txt | sed -ie '/s/???//' file.txt
나는 다음과 같은 오류가 그러나 :
sed -i 's/???//g' file.txt
사용할 필요는 없다 :
sed: -e expression #1, char 4: unknown command: `?'
는이 sed
명령을 사용할 수 있습니다 cat
여기에 sed
은 파일을 직접 조작하고 i를 저장할 수 있습니다. t 인라인.
또한 다른 정규식 맛과는 달리 특별한 정규식 메타 문자로 ?
을 취급하지 않습니다 sed
의 기본 정규식 엔진입니다 BRE (기본 정규 표현식이) 따라서 여기 ?
을 탈출 할 필요가 없습니다 있습니다.
나는 물음표를 벗어날 필요가 없을뿐 아니라 ** 도망쳐서는 안된다 고 생각한다. 나는 sed에서 많이 경험하지는 않지만 [이 문서] (https://www.gnu.org/software/sed/manual/html_node/Regular-Expressions.html)에서 나는 이스케이프 처리 (백 슬래시 접두사)를 물음표가 있으면 실제로 그것을 정규 표현식 연산자로 바꿀 것입니다. 최소한 이것은 GNU sed에 적용됩니다. – user1934428
예, GNU sed의 경우 기본 BRE 모드에서 물음표를 벗어나지 마십시오. – anubhava
@anubhava 파일 내용 부분 –
다음을 사용하십시오 :'sed '/ ??? // g'file.txt' – anubhava
@anubhava 답변으로 'cat ... | * 사용하지 않아야합니다 :). 그것이 내가 기여해야하는 전부이며, 그 자체로 답할 가치가 없습니다. 감사! – cxw