두 개의 txt 파일에서 숫자를 추가하고 동일한 파일에 쓰는 방법은 무엇입니까?

두 개의 txt 파일에서 숫자를 추가하고 동일한 파일에 쓰는 방법은 무엇입니까?

두 개의 txt 파일에서 숫자를 추가하고 싶습니다. file1의 번호가 변경되고 file2는 다음과 같이 자체적으로 업데이트됩니다 file2 = file1 + file2. 소수점 이하 자릿수는 필요하지 않습니다.

예:

파일 1

3

파일 2

7

산출:

파일 1

3

파일 2

10

시도해 보았지만 $ paste file1 file2 | awk '{$0 = $1 + $2}' > file2파일 1에서 파일 2로 숫자를 복사하는 것뿐입니다.

답변1

. 내부 교체는 로컬에서 지원되지 않습니다 awk. spongefrom을 사용하여 moreutils읽은 파일을 다시 쓸 수 있습니다 .

awk- 두 개의 파일을 한 줄씩 추가하는 방법

awk ' FNR==NR { a[NR]=$1 } FNR!=NR { print $1+a[FNR] }' file1 file2 | sponge file2

더 간단하고 awk부동 소수점도 지원합니다.

paste -d'+' file1 file2 | bc -l | sponge file2

두 방법 모두 여러 줄 파일을 지원합니다.

답변2

다음을 수행할 수 있습니다.

let tot=$(cat file1)+$(cat file2)
echo $tot

답변3

명령을 사용해 보았는데 잘 작동합니다.

paste f1 f2| awk '{print $1+$2}' >f2_tmp && mv f2_tmp f2


praveen@praveen:~$ cat f1
3
praveen@praveen:~$ cat f2
10
praveen@praveen:~$ 

관련 정보