UTF-16에서 ASCII로 변환 된 일부 텍스트의 형식을 지정하려고합니다. 출력은 다음과 같습니다.
C^@H^@M^@M^@2^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@
T^@h^@e^@m^@e^@ ^@M^@a^@n^@a^@g^@e^@r^@ ^@f^@o^@r^@ ^@3^@D^@S^@^@^@^@^@^@^@^@^@^@^@^@^@^@
내가 원하는 유일한 텍스트는 다음과 같습니다.
CHMM2
Theme Manager for 3DS
따라서 각 줄의 끝에 줄 바꿈 "\ n"이 있습니다.
tr -cs 'a-zA-Z0-9' 'newtext' infile.txt > outfile.txt
새 줄도 제거하므로 모든 텍스트가 한 줄에 하나의 큰 문자열로 끝납니다.
^ @ 만 제거하고 공백과 새 줄을 유지하는 방법을 찾는 데 도움이 될 수 있습니까?
^@
의 가장 확실 null 문자, \ 0, 그래서 수 있습니다 :
tr -d '\0'
그들을 제거 할 것입니다.
그러나 이것은 실제로 올바른 해결책이 아닙니다. 간단히 iconv
명령을 사용하여 에서로 변환 해야 UTF-16
합니다 UTF-8
(자세한 내용은 매뉴얼 페이지 참조). 그것은 물론 당신이 여기서 성취하고자하는 것입니다. 그리고 이것이 그것을 수행하는 올바른 방법이 될 것입니다.
이것은 XY 문제 입니다. 문제는 널 문자를 삭제하는 것이 아닙니다. 진짜 문제는 UTF-16에서 UTF-8 또는 US-ASCII로 변환하는 방법입니다 (그리고 보수적 인 대답으로 UTF-8을 선택했습니다).
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다