유효하지 않은 문자를 찾는 방법은 무엇입니까? [폐쇄]

유효하지 않은 문자를 찾는 방법은 무엇입니까? [폐쇄]

^M"잘못된 문자"(예: control-m 문자 또는 문자가 전혀 없는 문자) 가 있는 레코드를 필터링하려고 합니다 .

예:

12345 vimal 1235566 ^zfood nation

Unix vi 모드에서 파란색으로 표시된 여기에서는 ^z레코드에 유효하지 않거나 형식이 지정되지 않은 문자가 포함되어 있는지 확인하는 스크립트가 필요합니다.

답변1

파일에서 제어 문자가 포함된 모든 줄을 제거하려면 다음을 수행하십시오.

grep -v '[[:cntrl:]]' file >file.modified

그러면 .라는 이름의 새 파일이 생성됩니다 file.modified. 이 -v플래그는 grep유틸리티가 수행한 일치의 의미를 반전시키고 [[:cntrl:]]제어 문자가 포함된 행을 일치시킵니다.

C 로케일에서 인쇄할 수 없는 문자(예: 유니코드 문자)가 포함된 줄을 제거하려면 다음을 수행하십시오.

LC_ALL=C grep -v '[^[:print:]]' file >file.modified

관련 정보