2010-03-30 3 views
4

기본적으로 파일 그룹의 줄 끝 문자를 변경해야합니다.Windows/DOS 파일을 Unix로 일괄 변환하는 가장 좋은 방법은 무엇입니까?

배치 파일로이를 수행 할 수있는 방법이 있습니까? 프리웨어 유틸리티가 있습니까?

+0

수십 년 동안 이것을 싸우고있는 사람의 조언 :하지 마십시오. 데이터 파일을 다른 형식으로 변환하지 마십시오. 두 형식 중 하나를 채택하도록 프로그램을 수정하십시오. –

+0

문제는 타사 도구와 관련이 없습니다. –

+0

@ T.E.D. 승리 할 수있는 유일한 방법은 그러한 도구를 사용하지 않는 것입니다. –

답변

8
+0

당신은 아마'terminal $> dos2unix * .extension'와 같은 정규 표현식을 원할 것입니다. –

+1

glob을 의미합니까? – Ken

0

이 작업을 수행 할 수 xargs와 함께 tr을 사용할 수 있어야합니다.

적어도 유닉스 쪽에서는 가장 간단한 방법입니다. 그러나 10 년 전 Windows 박스에서 그런 방식으로 작업을 시도했지만 tr의 Windows 버전이 내 터미네이터를 다시 Windows 형식으로 변환한다는 것을 알았습니다. :-(그러나, 나는 도구가 스마트 입수 한 interveneing 십 년간 생각합니다.

0

하는 파일의 디렉토리 (바이너리 파일 제외) 변환 DOS2UNIX/fromdos으로 찾을 결합합니다.

그냥 당신의 .bashrc이 추가 각 텍스트 파일 후 "ASCII 텍스트"

DOS2UNIX=$(which fromdos || which dos2unix) \ 
    || echo "*** Please install fromdos or dos2unix" 
function finddos2unix { 
# Usage: finddos2unix Directory 
find $1 -type f -exec file {} \; | grep " text" | cut -d ':' -f1 | xargs $DOS2UNIX 
} 

첫째, DOS2UNIX가 설치 유틸리티가 있는지 찾아 내고,

찾기가 모든 파일의 목록을 만들어 사용할 하나를 선택합니다, 다음 파일을 추가합니다.

마지막으로 grep은 텍스트 파일을 선택하고 Cut은 ':'다음의 모든 텍스트를 제거하며 xargs는 DOS2UNIX의 큰 명령 행을 만듭니다.

1

다소 짧은 명령으로 수행 할 수 있습니다.

find ./ -type f | xargs -I {} dos2unix {} 
관련 문제