폴더의 모든 파일을 다른 줄 끝으로 어떻게 변환합니까? (Windows에서)


15

폴더의 모든 파일을 다른 줄 끝 (linux 또는 mac)으로 어떻게 변환합니까? Windows를 사용하고 있습니다.

지금 내 접근 방식은 Winscp를 사용하여 Linux 상자에 복사 한 다음 폴더에서 dos2unix를 반복적으로 실행하는 것입니다.


귀하의 현재 접근 방식이 상당히 좋습니다
Ramhound

답변:


17

Cygwin에 Cygwin 및 Dos2unix 설치

find . -type f -exec dos2unix {} \;

1
-maxdepth 1하위 디렉토리를 거치지 않도록 할 수도 있습니다.
barlop

1
팁 고마워. 그러나 내 유스 케이스에는 하위 폴더에있는 파일을 포함한 모든 파일이 필요합니다.
Satish

하나의 프로그램을 실행하기 위해 Cygwin을 설치하는 것은 나에게 엄청난 과잉처럼 보입니다. 매우 동일한 프로그램의 DOS 버전을 사용하고 쉘에서 한 줄 명령을 사용하여 모든 파일에 대해 실행하는 것이 좋습니다.
Richard

1
@Richard : 사실이지만 많은 사람들이 이미 Cygwin을 가지고 있으며 도구가 설치되어 있습니다. 당신도 그것을 시도 할 수 있습니다. 그것은 당신의 Windows를 더 Linux-y로 만들 것이며, 따라서 더 견딜 수 있습니다. 또한 명령 줄 문제에 대한 Windows 별 솔루션을 찾을 필요가 없습니다.
John Red

5

Windows에서 cygwin32 (또는 이와 유사한) 대신 git bash 를 설치할 수 있습니다 . 그것은 여러 유닉스 같은 명령 (예를 들어, 함께 제공 find, dos2unix에서, 등) bash에뮬레이션 모드. 일단 설치되면 Windows에서 Unix 파일로 파일을 쉽게 변환 할 수 있습니다.

src 라는 폴더 트리에 파일 (접미사 .java로 끝나는 파일 )이 있고 그 끝을 Windows에서 Unix로 변환 한다고 가정 해 봅시다 .

  1. Windows 탐색기에서 src 를 찾으십시오 .
  2. 마우스 오른쪽 버튼을 클릭하고 Windows 컨텍스트 메뉴에서 해당 폴더의 Git Bash를 엽니 다.
  3. 다음을 실행하십시오 find . -name "*.java" -exec dos2unix {} \;.

그리고 그게 다야!


0

dos2unix와 unix2dos를 사용하는 당신의 대답은 훌륭합니다.

귀하의 답변을 기반으로 한 다른 방법이 있습니다.

재미있게도 Gnuwin32를 사용할 수 있지만 명령이있는 Gnuwin32 패키지는 Cygutils http://gnuwin32.sourceforge.net/packages/cygutils.htm 이므로 C : \ Program Files에서 unix2dos.exe 및 dos2unix.exe를 얻습니다. .... \ GnuWin32 \ bin과 PATH에 있습니다.

C:\somedir>dir<ENTER>
 Volume in drive C has no label.
 Volume Serial Number is DC46-3C68

 Directory of C:\somedir

05/23/2014  01:10 AM    <DIR>          .
05/23/2014  01:10 AM    <DIR>          ..
05/23/2014  01:10 AM                 4 file1
               1 File(s)              4 bytes
               3 Dir(s)  196,129,951,744 bytes free

Do this command to go from dos2unix
C:\somedir>for %f in (*) do dos2unix %f <ENTER>

C:\somedir>dos2unix file1 <-- This runs automatically from you doing the above command
file1: done.

And do this command to go from unix2dos
C:\somedir>for %f in (*) do unix2dos %f <ENTER>

C:\somedir>unix2dos file1 <-- This runs automatically from you doing the above command
file1: done.

C:\somedir>

그리고 당신의 % f가 원하는 것을 할 것인지 테스트하려면 echo 또는 @ECHO를 사용하십시오. 예
를 들어 (*)에서 % f를 위해 @ECHO unix2dos % f

xxd를 사용하여 파일을 작성하고 파일이 변환되었는지 테스트 할 수 있습니다. Windows 용 xxd는 VIM C : \ Program ""Files \ vim \ vim74 \ xxd.exe와 함께 제공됩니다.

so, i'll create a file, I like this style of command is it allows me to 
create whateer file I want, a dos one or a unix one or anything.  
61 is hex for 'a'       
C:\somedir>echo 610d0a| xxd -r -p >testfile <ENTER>

check the file raw, in its hex
C:\somedir>cat testfile | xxd -p <ENTER>
610d0a

check the file in ascii or unicode
C:\somedir>cat testfile <ENTER>
a

and the following commands just prove that dos2unix and unix2dos work/are working fine.  
C:\somedir>dos2unix testfile <ENTER>
testfile: done.

C:\somedir>cat testfile | xxd -p <ENTER>
610a

C:\somedir>unix2dos testfile <ENTER>
testfile: done.

C:\somedir>cat testfile | xxd -p <ENTER>
610d0a

C:\somedir>

참고-* nix 배포판을 사용하는 경우 apt-get (apt-cache search dos2unix)을보고 패키지가 실제로 (아마도 놀랍지 않게!) dos2unix (apt-get install dos2unix와 함께 설치됨)이며 dos2unix와 함께 포함됩니다. 실행 파일, unix2dos 실행 파일 unix2dos 검색을 apt-cache하면 dos2unix 패키지가 표시됩니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.