Bash 스크립트를 사용하여 두 개의 CSV 파일에 있는 각 행의 열 값을 어떻게 합산할 수 있나요?

Bash 스크립트를 사용하여 두 개의 CSV 파일에 있는 각 행의 열 값을 어떻게 합산할 수 있나요?

두 개의 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

관련 정보