sed "s/Ç//\x01 /g" filename
x01
대신에 그것을 대체합니다\x01
답변1
어떤 버전의 sed를 사용하고 있습니까? 왜냐면 이 일은 내 쪽에서는 아주 깔끔하게 돌아가거든요.
대안:
tr '\200' '\001' < yourfile
perl -pe 's/\200/\x01/g' yourfile
SOH=`echo x | tr x '\001'`; sed -e "s/\200/${SOH}/g" yourfile
답변2
게시한 내용에 구문 오류가 있습니다. Ç
빈 문자열을 후행 쓰레기로 바꾸라는 지시입니다. 정규식과 대체 패턴 사이에는 슬래시가 있어야 합니다. Ç
리터럴 문자열로 바꾸려면 \x01
가 필요합니다 sed "s/Ç/\\x01 /g" filename
. 백슬래시는 대체 텍스트의 특수 문자이므로 두 배로 늘려야 합니다. 이 답변의 나머지 부분은 Ç
문자를 16진수 코드로 바꾸는 것에 관한 것입니다 01
.
\x01
16진수 코드로 문자를 지정하는 구문은 이식 가능한 sed 구문의 확장입니다. GNU sed(Linux에서 구현됨)에서는 작동하지만 AIX에서는 작동하지 않습니다.
이 문자를 문자 그대로 스크립트에 삽입할 수 있지만 많은 편집기에서는 입력하기가 어렵습니다. printf
명령과 8진수 표기법을 사용하여 이식 가능한 방식으로 스크립트에서 문자를 생성할 수 있습니다 .
`sed "s/Ç/$(printf '\001') /g" filename`