[RUBY] Ajout d'une seule ligne avec divers scripts

L'autre jour, c'était un tournoi d'ajout d'une ligne dans le chat de l'entreprise, donc je vais le laisser comme un rappel.

thème

Ajoutez les nombres 1 à 5 répertoriés dans le fichier ci-dessous

$ cat num.txt
1
2
3
4
5

ShellScript

$ xargs < num.txt
1 2 3 4 5
$ xargs < num.txt | tr ' ' '+'
1+2+3+4+5
$ xargs < num.txt | tr ' ' '+' | bc
15
$ awk '{a=a+$0}END{print a}' < num.txt
15
$ S=0;while read N; do S=`expr "$N" "+" "$S"` ; done < num.txt ; echo $S
15
$ xargs < num.txt
1 2 3 4 5
$ xargs -n 1 < num.txt
1
2
3
4
5
$ xargs -n 1 seq < num.txt
1
1
2
1
2
3
1
2
3
4
1
2
3
4
5
$ xargs -n 1 seq < num.txt | wc -l
      15

Perl

$ perl -nale 'for(@F[0]){$sum+=$_}END{print $sum}' num.txt
15
$ perl -nE '$sum+=$_;END{say $sum}' num.txt
15

PHP

$ php -R '$a=$a+$argn;echo $a;echo "\n";' < num.txt | tail -n 1 
15
$ php -r "echo array_sum(file('num.txt'));"
15

Ruby

$ ruby -e 'puts ARGF.map(&:to_i).reduce(:+)' num.txt
15
$ ruby -ne 'BEGIN{$sum = 0}; $sum += $_.to_i; END{puts $sum}' num.txt
15
$ ruby -e 'p eval([*$<]* ".+")' num.txt
15

Python

$ python -c "import sys, operator;print reduce(operator.add, map(int, sys.stdin.readlines()))" < num.txt
15
$ python -c "print eval('+'.join(open('num.txt').read().split()))"
15

Recommended Posts

Ajout d'une seule ligne avec divers scripts
Différentes barres de couleurs avec Matplotlib
Contrôler les scripts avec des exceptions
Essayez différentes choses avec PhantomJS
Ajouter avec Python if instruction
Manipulez diverses bases de données avec Python
Développé avec Choregraphe et divers mémorandums
Exécutez le script avec la commande admin de Django
Utilisez des scripts personnalisés Python avec StackStorm
Divers réglages fins avec Mobilenet v2
[Python] Tri Starlin à une ligne avec 50 caractères
Jeu Sugoroku et jeu d'addition avec Python
Gère divers formats de date avec des pandas