2014-05-21 2 views
0

인쇄 할 수없는 문자가 포함 된 로그 파일에서 모든 줄을 인쇄하는 빠르고 쉬운 방법이 있습니까? 펄 정규 표현식 옵션을로그 파일에서 손상된 문자는 어떻게 찾을 수 있습니까?

int main(int arg, char** argv) 
{ 
    char buffer[32]; 
    buffer[0] = 1234; 
    buffer[1] = '\0'; 
    fprintf(stderr, "TEST %s\n", buffer); 
} 
+0

우리는 당신이 무엇을 필요로하는지 짐작할 수 있지만, '부패한 문자들'과 '나쁜'printf' 호출의 예를 제공해주세요. –

+0

제어 문자와 같은 비 인쇄 문자를 말하는다고 가정합니다. –

+1

예, 인쇄 할 수없는 문자, 예를 들어 설명했습니다. – dshin

답변

0

사용 GREP :에 의해 생성 될 수 라인

TEST Ò 

처럼. 이 너무 포괄적 또는 충분히 포함하지 않은 경우 당신은 (아마도 탭이 확인되는 특정 유니 코드 문자를 확인 고려 될 수있다?) 문자의 오른쪽 범위를 대상으로 정규 표현식을 변경할 수 있습니다

grep -n -P "[\x01-x\09]|[\x0B-\x0C]|[\x0E-\x1F]|[\x7F-\xFF]" log.txt 
0

나는

을 사용하십시오

지정된 범위 이외의 문자로 모든 행을 인쇄합니다.

설명 :

awk -e 

다음 코드

'!/^[A-Z]*$ 

으로 AWK 프로그램을 호출이 일치하지 않습니다 아무것도 (!) 정규식 ^[A-Z]*$

일치하는 규칙을 시작합니다
{print $0}' 

규칙이 일치하면 전체 줄을 인쇄하십시오.

./test 

은 작업 할 파일을 전달합니다.

참고 : 충분한 테스트 데이터를 제공하지 않았으므로 정규 표현식을 데이터에 맞게 조정해야 할 수도 있습니다.

관련 문제