두 개의 CSV 파일이 있고 File1과 File2의 각 행에서 열 8의 합계를 계산해야 합니다. 두 개의 CSV 파일에는 각각 24개의 행이 있습니다. 단순화하기 위해 다음을 사용하여 각 CSV 파일의 8번째 행을 추출했습니다.
awk -F, '{ print $8 }' >> FILE1
awk -F, '{ print $8 }' >> FILE2
이제 다음 형식의 2개 파일 데이터가 있습니다.
파일 1
1
2
3
4
파일 2
2
3
4
5
어떻게 하면 이런 식으로 계산을 할 수 있나요?
File1.Col1 + File2.Col1 = File3.Col1
File1.Col2 + File2.Col2 = File3.Col2
File1.Col3 + File2.Col3 = File3.Col3
.
.
.
다음으로 이어진다:
파일 3
3
5
7
9
나머지 처리는 동일한 방식으로 수행되므로 Bash 쉘 스크립트를 사용합니다.
답변1
paste File1 File2 | awk '{ print $1 + $2; }' > File3
답변2
중간 파일을 피하려면 다음을 사용하십시오.
paste <( awk -F, '{ print $8 }' original_file1 ) <( awk -F, '{ print $8 }' original_file2 ) | awk '{print $1+$2}' > file3
답변3
두 필드가 모두 24개 필드 중 8열에 있는 경우
paste originalfile1 originalfile2 | awk '{print $8+$32 ; }' > file3
답변4
사용numsum
그리고 paste
:
paste -d ' ' File[12] | numsum -r > File3
아니면 만약에데이터 파일 1그리고데이터 파일 2다중 열 파일입니다파일 1그리고파일 2추출됨:
paste -d ' ' <(cut -f 8 DataFile1) <(cut -f 8 DataFile2) | numsum -r > File3