붙여넣기를 사용한 이상한 동작

붙여넣기를 사용한 이상한 동작

붙여넣기 도구를 사용할 때 이상한 동작이 발생합니다. 어떤 이유로 두 개의 특정 파일에서는 작동하지 않는 것 같지만 다른 파일에서는 동작을 재현할 수 없습니다.

첫 번째 파일:

$ cat file1
20.623 40.276 -1.999 -1031 127 141 154
20.362 40.375 -2.239 -941 130 141 159
20.36 40.376 -2.402 -1083 139 151 165
20.374 40.367 -2.405 -1122 131 147 163
20.372 40.366 -2.405 -1165 132 145 161
20.375 40.364 -2.404 -1036 133 149 165
20.358 40.371 -2.405 -1137 139 151 165
20.359 40.374 -2.404 -1086 139 151 165
20.354 40.375 -2.404 -1106 139 148 163
20.356 40.374 -2.404 -1059 139 151 165

두 번째 파일:

$ cat file2
-1
-1
2
-1
-1
-1
-1
2
2
2

이제 붙여넣기는 다음 호출 후에 예상되는 작업을 수행합니다.

$ paste file2 file1
-1  20.623 40.276 -1.999 -1031 127 141 154
-1  20.362 40.375 -2.239 -941 130 141 159
2   20.36 40.376 -2.402 -1083 139 151 165
-1  20.374 40.367 -2.405 -1122 131 147 163
-1  20.372 40.366 -2.405 -1165 132 145 161
-1  20.375 40.364 -2.404 -1036 133 149 165
-1  20.358 40.371 -2.405 -1137 139 151 165
2   20.359 40.374 -2.404 -1086 139 151 165
2   20.354 40.375 -2.404 -1106 139 148 163
2   20.356 40.374 -2.404 -1059 139 151 165

그러나 매개변수를 전환하면 행을 연결하는 대신 어떤 방식으로든 병합하여 결과 행이 생성됩니다.

$ paste file1 file2
20.623 4-1276 -1.999 -1031 127 141 154
20.362 4-1375 -2.239 -941 130 141 159
20.36 402376 -2.402 -1083 139 151 165
20.374 4-1367 -2.405 -1122 131 147 163
20.372 4-1366 -2.405 -1165 132 145 161
20.375 4-1364 -2.404 -1036 133 149 165
20.358 4-1371 -2.405 -1137 139 151 165
20.359 42.374 -2.404 -1086 139 151 165
20.354 42.375 -2.404 -1106 139 148 163
20.356 42.374 -2.404 -1059 139 151 165

두 번째 숫자는 뒤죽박죽되어 있습니다. 더 이상한 점은 페이스트가 예상대로 작동한다는 것입니다.

$ cat test1
5 5 5 5
6 6 6 6
$ cat test2
-2
-7
$ paste test2 test1
-2  5 5 5 5
-7  6 6 6 6
$ paste test1 test2
5 5 5 5 -2
6 6 6 6 -7

매뉴얼 페이지는 문제 해결에 도움이 되지 않습니다. 내가 달성하려는 작업에 대한 설명과 도움이 있습니까?

답변1

실제로 이 동작을 일으키는 것은 Windows 개행 문자입니다. 달리고 난 후

sed $'s/\r//' -i file1

이를 대체하려면 붙여넣기가 예상대로 작동합니다. 올바른 방향을 알려준 Steeldriver에게 감사드립니다. 또 다른 해결책은 다음을 사용하는 것입니다.

dos2unix file1 

관련 정보