동일한 행 수를 가진 두 개의 정렬된 CSV 파일이 있습니다. 이 두 개의 CSV 파일을 결합하고 싶습니다.
1.csv
1,2,3
4,5,6
7,8,9
2.csv
10,11,12
13,14,15
16,17,18
result.csv
1,2,3,10,11,12
4,5,6,13,14,15
7,8,9,16,17,18
시도했지만
cat 1.csv 2.csv >result.csv
참여하는 대신 추가됩니다.
답변1
위치 paste
:
paste -d, {1,2}.txt
-d,
구분 기호를 ,
. 로 설정하는 {1,2}.txt
것은 셸에서 수행되는 중괄호 확장이며 1.txt 2.txt
.
당신이 조금 좋아한다면 awk
:
awk 'NR==FNR {a[FNR]=$0; next} {print a[FNR], $0}' OFS=, {1,2}.txt
NR==FNR
첫 번째 파일에만 적용됩니다. 레코드 번호를 키로, 레코드를 값으로 사용하여{a[FNR]=$0; next}
배열을 생성합니다.a
두 번째 파일의 경우
{print a[FNR], $0}
해당 줄 번호에 배열 요소를 인쇄하고 그 뒤에OFS=,
출력 필드 구분 기호를 다음과 같이 설정합니다 .,
예:
$ cat 1.txt
1,2,3
4,5,6
7,8,9
$ cat 2.txt
10,11,12
13,14,15
16,17,18
$ paste -d, {1,2}.txt
1,2,3,10,11,12
4,5,6,13,14,15
7,8,9,16,17,18
$ awk 'NR==FNR {a[FNR]=$0; next} {print a[FNR], $0}' OFS=, {1,2}.txt
1,2,3,10,11,12
4,5,6,13,14,15
7,8,9,16,17,18