標準出力で受け取った複数の数字の合計値を出すワンライナー
$ cat hoge.txt | xargs | perl -pe "s/ /+/g" | bc### 使い方は、こんな感じ。
$ cat hoge.txt 14 214 313 $ cat hoge.txt | xargs | perl -pe "s/ /+/g" | bc 54114,214,313 みたいな数字を標準出力から受け取ります。 それをパイプでつなぎいくつかのコマンドを介して、最終的には受け取ったすべての数値の合計値を返します。 ### 解説しよう! #### cat hoge.txt ここは数値を受け取る部分。数値だけが出力されるようにご調整ください。 「大量のログデータの中から該当箇所をgrepして抜き出して、perl -peで数値前後の箇所削除する」とか「CSVの3項目目の数値だけ cut -d, -f3 して取り出す」とかいろいろ出来ると思います。 #### xargs これがないと、数値がぶつ切りに改行されて出力されるため、まとめてbcに送る事ができません。 xargsを使うと受け取った数値が、" "(半角スペース)区切りの1行の引数として送ることが出来るようになります。 つまり、
"14
214
313"
を、"14 214 313"という形で受け取れます。 #### perl -pe "s/ /+/g" ここでperlで半角スペースをプラス記号に置換しています。 つまり、"14 214 313”が、"14+214+313"になるわけです。 #### bc 最後に bc が"14+214+313"を計算し、出力してくれて終わり! 以上、Mac OS X Lion の Terminal で動作確認してます。
関連記事
-
Webとかガジェットとか
母ちゃんがゲーム実況をはじめてみた理由
-
Webとかガジェットとか
レシート1枚10円で売れるONEアプリ、試してみた
-
Webとかガジェットとか
メモアプリ使い分け2018年版 #iOSメモ #Trello #Ulysses #NoteShelf2
-
Webとかガジェットとか
Google Home Mini を百均のスポンジホルダーで壁付けにしてみた
-
Webとかガジェットとか
iOS操作自動化アプリ「Workflow」で作った、Dropbox Cameraのレシピを共有します
-
Webとかガジェットとか
Pebble Time のおかげで、電話を逃さなくなった。買ってよかった。