데스크탑이 충돌 할 때 Eclipse 작업 공간을 Linux에서 Windows로 이동해야했습니다. 일주일 후 나는 그것을 Linux로 다시 복사하고, 즐겁게 코드를 작성하고, CVS에 최선을 다한다. 그리고 슬프게도, Windows 줄 바꿈은 많은 파일을 오염 시켰으므로 CVS diff는 한 줄 또는 두 줄을 변경하더라도 전체 파일을 덤프합니다!
스크립트를 만들 수는 있지만 Eclipse 프로젝트 파일이 엉망이 될지 궁금합니다.
데스크탑이 충돌 할 때 Eclipse 작업 공간을 Linux에서 Windows로 이동해야했습니다. 일주일 후 나는 그것을 Linux로 다시 복사하고, 즐겁게 코드를 작성하고, CVS에 최선을 다한다. 그리고 슬프게도, Windows 줄 바꿈은 많은 파일을 오염 시켰으므로 CVS diff는 한 줄 또는 두 줄을 변경하더라도 전체 파일을 덤프합니다!
스크립트를 만들 수는 있지만 Eclipse 프로젝트 파일이 엉망이 될지 궁금합니다.
답변:
UTF-8
텍스트 파일이 Windows OS에 고유하지 않은 형식으로 저장되고 이기종 개발자 데스크탑에서 가장 쉽게 공유 할 수 있도록 새 파일의 파일 인코딩 및 줄 끝을 Unix로 설정하십시오.
- 작업 공간 환경 설정으로 이동하십시오 (일반 : 작업 공간).
- 텍스트 파일 인코딩을 다음으로 변경하십시오.
UTF-8
- New Text File Line Delimiter를 Other로 변경하고 pick-list에서 Unix를 선택하십시오.
- 참고 : 기존 파일의 줄 끝을 변환하려면 Eclipse에서 파일을 열고
File : Convert Line Delimiters to : Unix
팁 : 패키지 탐색기에서을 선택한 다음 메뉴 항목으로 이동하여 기존 파일을 쉽게 변환 할 수 있습니다.File : Convert Line Delimiters to : Unix
File : Convert Line Delimiters to : Unix
명령을 사용 하여 프로젝트의 모든 파일을 한 번에 "수정" 할 수 있습니다 .
편리한 bash 유틸리티 dos2unix
가 있습니다-DOS / MAC to UNIX 텍스트 파일 형식 변환기입니다. 배포판에 아직 설치되지 않은 경우 패키지 관리자를 통해 쉽게 설치할 수 있습니다. dos2unix 매뉴얼 페이지
Eclipse 솔루션 및 다른 답변 에서 언급 한 도구 외에도 flip을 고려하십시오. . 일반적인 줄 바꿈과 Windows 줄 바꿈 사이에서 '플립'할 수 있으며 파일의 타임 스탬프 및 기타 통계를 보존하는 것과 같은 훌륭한 기능을 수행합니다.
다음과 같이 사용하여 문제를 해결할 수 있습니다.
find . -type f -not -path './.git/*' -exec flip -u {} \;
(git을 사용하는 경우 .git 디렉토리를 무시하는 절을 넣었지만 flip은 기본적으로 바이너리 파일을 무시하므로 필요하지 않을 수도 있습니다.)
find
는 이런 식으로 작동하지 않습니다.
시도해 볼 수 있습니다. 문제는 새 줄이 주어지면 Windows에서 캐리지 리턴과 줄 바꿈을 삽입한다는 것입니다. 유닉스 시스템은 단지 라인 피드를 삽입합니다. 따라서 캐리지 리턴 문자가 추가되어 일식이 개행을 망칠 수 있습니다.
프로젝트에서 하나 또는 두 개의 파일을 가져 와서 변환하십시오. 메모장 ++을 사용하여 그렇게 할 수 있습니다. 파일을 열고 형식-> Unix로 변환 (Windows를 사용하는 경우)으로 이동하십시오.
Linux에서는 명령 행에서 다음을 시도하십시오.
sed 's/$'"/`echo \\\r`/" yourfile.java > output.java
sed -i 's/$`echo \\\r`//' yourfile.java
그리고 자동화find . -name "*.java" -exec sed -i 's/$`echo \\\r`//' {} \;