EOL 대신 구분 기호로 데이터 파일의 행을 구문 분석합니다.

EOL 대신 구분 기호로 데이터 파일의 행을 구문 분석합니다.

나는 제어할 수 없는 형식의 큰 텍스트 파일(600MB)에서 원시 데이터를 구문 분석하려고 합니다.

문제는 줄 끝의 위치가 잘못되었다는 것입니다.

head -1 filename | wc -w

각 줄은 약 1.2K 단어를 생성합니다. 내 대상 행은 \x06 문자로 구분됩니다.

각 줄이 ^F(\x06)로 끝나거나 시작하도록 이 줄을 어떻게 재구성할 수 있습니까? 나는 많은 sed 튜토리얼을 읽었지만 이런 종류의 프로세스에 대해서는 아무도 언급하지 않았습니다 ...

^F1990451178631 E04:19:03.86 USER_INPUT 0 ID=34586238477^F1990451178631 E04:19:03.86 USER_INPUT 0 ID=34586238477^F1990451178631 E04:19:03.86 USER_INPUT 0 ID=34586238477^F1990451178631 E04:19:03.86 USER_INPUT 0 ID=34586238477^F1990451178631 E04:19:03.86 USER_INPUT 0 ID=34586238477^F1990451178631 E04:19:03.86 USER_INPUT 0 ID=34586238477^F1990451178631 E04:19:03.86 USER_INPUT 0 ID=34586238477^F1990451178631 E04:19:03.86 USER_INPUT 0 ID=34586238477^F1990451178631 E04:19:03.86 USER_INPUT 0 ID=34586238477^F1990451178631 E04:19:03.86 USER_INPUT 0 ID=34586238477^F1990451178631 E04:19:03.86 USER_INPUT 0

sed 또는 이와 유사한 것을 통해 이를 수행하는 가장 좋은 방법은 무엇입니까?

답변1

awk개행 문자 이외의 레코드 구분 기호를 사용할 수 있습니다. 다음과 같이 사용할 수 있습니다.

awk 'BEGIN { ORS=RS="\x06" } ...' input-file

여기서...는 데이터에 대해 수행하려는 작업입니다.

관련 정보