2022/07/08

ターミナル上でちょっとした遊び

ターミナル上でいろんなコマンドを実行してみた

計算

shell上での計算といえば、bcかexpr?w

$ expr 1 + 1
2
$ bc
bc 1.07.1
Copyright 1991-1994, 1997, 1998, 2000, 2004, 2006, 2008, 2012-2017 Free Software Foundation, Inc.
This is free software with ABSOLUTELY NO WARRANTY.
For details type `warranty'. 
1+1
2
1-1
0
3*3
9
1.1+2
3.1
^C
(interrrupt) Exiting bc.

計算式を入力とするパターン

パイプラインでbcに渡してみる

$ echo "1+1"|bc
2
$ echo "3*3"|bc
9

入力を整形してから他の言語に渡す方法もあり

$ echo "1+1"|sed 's/^/print /'|ruby
$ seq 5| 

seqで整数を生成して計算するパターン

※awkはgrepにプログラム機能をつけたようなもの

$ seq 5
1
2
3
4
5
$ seq 5| awk '{a+=$1}{print a}'
1
3
6
10
15
$ seq 5| awk '{a+=$1}{print a}'|xargs
1 3 6 10 15
$ seq 5| awk '{a+=$1}END{print a}'|xargs
15
$ seq 5 > number.txt
$ cat number.txt |awk '{a+=$1}END{print a}'
15
$ seq 5|awk '{printf("%s+",$1)}'|sed s/.$/"\n"/ |bc
15

まとめ

シェルで遊んでみた
ちょっとずついろんなことができるようになれるといいな

検索用タグ

shell, terminal, awk, sed, seq, bc