두 개의 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
. sponge
from을 사용하여 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:~$