^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