동일한 수(길이 48554)의 매우 큰 파일에 두 개의 열(한 파일에 있음)을 붙여넣어야 합니다. 나는 이것을 시도했다
탭으로 구분된 열이 있는 두 개의 파일이 있습니다. 파일 1은 다음과 같습니다.
헤더_1 헤더_2
0 23
1 25
파일 2는 다음과 같습니다.
Header_3 header_4 2 24 3 26
내가 원하는 것은 이것이다:
Header_1 header_2 Header_3 header_4 0 23 2 24 1 25 3 26
예를 들어 붙여넣기를 시도했습니다.
파일 1 파일 2 붙여넣기 |
- 하지만 나는 그것을 이해합니다:
Header_1 header_2 0 23 1 25 Header_3 header_4 2 24 3 26
즉, 문제는 필요에 따라 +5000 열 행렬로 두 개의 추가 열을 나란히 추가하는 대신 붙여넣기가 파일 2의 새 열을 파일 1의 마지막 열 아래쪽에 추가한다는 것입니다.
내가 뭘 잘못했나요?
답변1
구분 기호는 탭이라기보다는 공백처럼 보이지만 paste
제게는 잘 작동합니다.
시도해 볼 수 있는 대안
join <(nl file1) <(nl file2) | cut -d' ' -f2-5
또는
awk '{ if (FNR==NR) {F[NR]=$1;G[NR]=$2; next}; {printf "%s\t%s\t%s\t%s\n", $1, $2, F[FNR], G[FNR]}}' file2 file1
답변2
실제로 두 파일을 테이블/데이터프레임으로 가져와서 R에서 작동하게 할 수 있습니다.
file1<-read.table("file1.txt")
file2<-read.table("file2.txt")
그런 다음 cbind를 사용하십시오.
combined.txt <- cbind(file1, file2)
하지만 나에게도 효과가 있는 간단한 UNIX 기능이 있을 수 없다는 사실을 이해하는 데 어려움을 겪고 있습니다.