LF를 CRLF로 선택적으로 수정

LF를 CRLF로 선택적으로 수정

반면:

  • 다음 항목이 혼합된 대규모 디렉토리 트리:
    • LF 줄 끝이 있는 파일
    • CRLF로 끝나는 파일
    • LF와 CRLF 줄 끝이 이상하게 혼합된 파일(버그로 인해)
    • 바이너리 파일
    • 다른 파일들은 손상되더라도 손대고 싶지 않은 파일들
  • 공백이 포함될 수 있는 경로

내 목표는 LF 전용 및 CRLF 전용 파일을 유지하고 마지막 두 그룹도 유지하면서 혼합 파일을 CRLF 전용 파일로 변환하는 것입니다.

이 주문의 기능은 다음과 같습니다.

find . (some conditions to exclude stuff I don't want to mess with) |
    xargs -d '\n' unix2dos -ic | cut -c 3- |
    xargs -d '\n' dos2unix -ic | cut -c 3- |
    xargs -d '\n' unix2dos

하지만 이제는 이 작업을 수행하는 더 좋고 효율적인 방법이 있는지 궁금합니다. (Perl/Python 등이 아닌 표준 쉘 도구를 사용하십시오.)

FWIW, 첫 번째는 unix2dos -ic초기 목록을 CRLF를 포함하는 파일로만 필터링한 다음 dos2unix -icLF도 포함하는 파일로 하위 필터링하고 마지막은 실제로 변환을 수행합니다. 이러한 호출은 난독화된 두 개의 선행 공백을 잘라 cut내고 출력이 인용되지 않기 때문에 파일 이름의 공백 문제를 해결하기 위해 수행됩니다.xargs-d

관련 정보