Bir sayı sütununu toplayacak bir bash komutu istiyorum. Temelde şöyle bir şey yapacak hızlı bir astar istiyorum:
cat FileWithColumnOfNumbers.txt | sum
İki satır sayılır mı?
awk '{ sum += $1; }
END { print sum; }' "$@"
Daha sonra gereksiz 'cat' olmadan kullanabilirsiniz:
sum < FileWithColumnOfNumbers.txt
sum FileWithColumnOfNumbers.txt
FWIW: MacOS X'te bunu tek bir satırla yapabilirsiniz:
awk '{ sum += $1; } END { print sum; }' "$@"
bc (hesap makinesi) kullanabilirsiniz. Dosyanızın #s ile "n" olarak adlandırıldığını varsayarsak:
$ cat n
1
2
3
$ (cat n | tr "\012" "+" ; echo "0") | bc
6
trtüm yeni satırları "+" olarak değiştirir; sonra son artıdan sonra 0 ekleriz, sonra ifadeyi (
1+2+3+0`) hesap makinesine aktarırız
Ya da awk veya perl kullanmakta sorun yaşamıyorsanız, işte size bir Perl tek satırlık yazı:
$perl -nle '$sum += $_ } END { print $sum' n
6