다양한 형식의 텍스트 파일이 여러 개 있습니다.
x y z
x y z
x y z
z
새 파일을 만들고 각 파일의 값을 합산한 다음 합산된 값을 바꾸고 싶습니다. z
즉
x y (z1+z2+z3+z4)
x y (z1+z2+z3+z4)
x y (z1+z2+z3+z4)
명령줄에서 이 작업을 어떻게 수행합니까? 나는 awk
이 목적을 위해 그것을 어떻게 사용하는지, 아니면 이것이 실제로 가장 효율적인 방법인지는 알고 있지만 완전히 확신하지 못합니다.
답변1
연결된 파일을 awk
두 번 전달할 수 있습니다. 처음에는( ) NR==FNR
모든 파일의 sum
세 번째 열( )의 값을 계산하고 $3
, 두 번째에는 기존 값을 합계로 바꿉니다.
awk 'NR==FNR{sum+=$3;next}; {$3=sum; print}' <(cat file1 file2...fileN) \
<(cat file1 file2...fileN) > result.txt