고정 길이 파일 문제

고정 길이 파일 문제

고정 길이 파일의 소수의 레코드가 두 개의 레코드로 분할됩니다. 파일은 다음과 유사합니다. 세 번째 레코드는 두 개의 레코드로 분할됩니다. 끝에서 '\r'을 제거하고 네 번째 줄을 위로 이동하여 세 번째 줄과 병합하려면 어떻게 해야 합니까?

샘플 파일:

Firstrow\n
Secondrow\n
Third\r\n
Row\n
Fourthrow\n
Fifthrow\n

원하는 최종 결과:

Firstrow\n
secondrow\n
Thirdrow\n
Fourthrow\n
Fifthrow\n

답변1

노력하다

sed '/\r/{N; s/\r\n//}' file

답변2

awk를 사용하면 라인을 기반으로 출력 레코드 구분 기호를 사용할 수 있습니다.

awk '{ORS = sub(/\r$/,"") ? "" : RS};1' file > temp && mv temp file

또는 Perl을 사용하여 CRLF 쌍을 제거하십시오.

$ perl -pi -e 's/\r\n//' file

관련 정보