2017-11-28 15 views
2

여러 텍스트 파일을 병합 내가다른 길이

File1 File2 File3 
|1|  |2|  |4| 
     |3|  |5| 
       |6| 

같은 간단한 형식의 파일을 여러 개있는 모든 파일은 서로 다른 길이를 갖는다. 다음 출력을 얻으려고합니다 :

결과 출력의 각 행에는 해당 입력 파일의 각 행에 구분 기호로 쉼표가 포함되어 있습니다.

두 입력 파일의 다음 명령

paste -d',' input1 input2 

실행은 상기 적절한 출력을 제공한다. 이 개 파일에 대한 명령이 세 개 이상의 파일과 실패하는 이유 그러나

|1,2| 
|,4 | 
|,3 | 
|,5 | 
... 

에 3 개 개의 입력 파일 결과에 대한 명령을 실행?

답변

1

신속하고 더러운 :

$ cat file1 
|1| 
$ cat file2 
|2| 
|3| 
$ cat file3 
|4| 
|5| 
|6| 
$ paste -d ',' file[123] | sed -e 's/|//g' -e 's/^/|/g' -e 's/$/|/g' 
|1,2,4| 
|,3,5| 
|,,6| 
+0

나는이 시도하고 문제가 계속 내 파일에 남아있다. 이 문제는 각 줄 끝에 새 줄이 생길 수 있습니다. 어떤 제안? –

+0

각 파일에'cat -vet'의 출력을 게시하십시오. – bishop

+0

파일 Nr. 1은 출력 '13 $'을 제공하고 모든 후속 파일들은 각 라인에 대해'[0-9]^M $'형태를가집니다. 이 차이점은 모든 입력 파일이 동일한 프로세스에 의해 생성되므로 이상하게 보입니다. 이 산출물을 해석하는 방법은 무엇입니까? –