2017-03-29 12 views
0

C#을 사용하여 Linux에서 작업을 자동화하는 셸 스크립트를 만듭니다. 내 파일 때문에 윈도우와 리눅스 (which a fixed suggested here for linux)에서 EOL 차이에 리눅스로 이동할 때C#으로 리눅스 셸 스크립트 파일 만들기 (dos2unix가 필요 없음)

List<string> batchFileLines = new List<string>(); 
batchFileLines.Add("shell command 1"); 
batchFileLines.Add("shell command 2"); 
System.IO.File.WriteAllLines(shellBatchFileName, batchFileLines.ToArray()); 

그러나, 쉘 파일 EOLs이 dos2unix 명령으로 수정해야 :이 작업을 수행하기 위해 , 나는 구조 아래 사용 . C#에서 파일을 조작하려면 어떻게해야합니까? dos2unix을 실행할 필요가 없습니다.

최소한의 노력으로 새로운 라인을 리눅스 포맷으로 대체하는 방법은 무엇입니까? 출력 파일이 더 이상 dos2unix을 필요로하지 않습니다

System.IO.File.WriteAllLines(shellBatchFileName, batchFileLines.ToArray()); 

System.IO.File.WriteAllText(shellBatchFileName, string.Join("\n", batchFileLines.ToArray())); 

+0

각 행의 끝에 아스키 10을 추가 할 수 있습니다. –

+0

@ rory.ap DOS는 캐리지 리턴과 줄 바꿈 ("\ r \ n")을 줄 끝으로 사용합니다. Unix는 줄 바꿈 ("\ n")을 사용하기 때문에 '\ r'을 제거해야합니다. – VSB

+0

[C#에서 유닉스 스타일의 텍스트 파일 쓰기] 가능한 복제본 (http://stackoverflow.com/questions/7841761/writing-unix-style-text-file-in-c-sharp) – Max

답변