각 문자 뒤에 ^@
자 (파란색)로 보이는 파일이 있습니다. 이 문자는 vi file.txt
에서만 볼 수 있습니다. cat
을 사용하여 이러한 문자를 볼 수 없습니다. 어떻게 제거 할 수 있습니까?리눅스 파일에서^@ 문자를 제거하십시오.
나는 다음과 같은 명령을 사용하여 시도 :
sed "s/[^@]//g" a.txt > b.txt
그러나이 파일을 변경하는 것 같지 않았어요.
각 문자 뒤에 ^@
자 (파란색)로 보이는 파일이 있습니다. 이 문자는 vi file.txt
에서만 볼 수 있습니다. cat
을 사용하여 이러한 문자를 볼 수 없습니다. 어떻게 제거 할 수 있습니까?리눅스 파일에서^@ 문자를 제거하십시오.
나는 다음과 같은 명령을 사용하여 시도 :
sed "s/[^@]//g" a.txt > b.txt
그러나이 파일을 변경하는 것 같지 않았어요.
는 iconv -f UTF16 -t UTF8 <your-file> > <new-file>
감사합니다. – user1882633
@ user1882633 다음과 같은 오류가 발생합니다. iconv : 불완전한 문자 또는 버퍼 끝의 시프트 시퀀스 어쨌든 나를 도울 수 있습니까? : D –
원본 파일이 올바른 UTF16입니까? – user3159253
dos2unix file.txt file.txt
을 시도합니다. 이것은 할 것입니다 ..
UTF-16 파일을 UTF-8로 변환하려면 dos2unix> = 6.0이 필요합니다. –
이 작동합니다
sed "s/[\^@]//g" a.txt > b.txt
당신은 유닉스에 DOS (윈도우 물건)로 변환하는'dos2unix'를 사용할 수 있습니다. – fedorqui
UTF16 인코딩의 파일이있을 확률이 높습니다. 리눅스에서는 대부분의 경우 바이트 지향적 인 현재 로케일에서이를 볼 수 있습니다 (UTF-8조차도).^@로 보이는 것은 ASCII 코드 0입니다. 16 비트 기호의 상위 부분은 대부분의 라틴 문자에 대해 0입니다. – user3159253
null 바이트 (0x00)입니다. 파일이 각 문자에 대해 2 바이트를 사용하는 UTF-16으로 인코딩되어 있기 때문에 일반 ASCII 텍스트의 경우 ASCII 바이트와 비어있는 Null 바이트가 있습니다. –