やーまんぶろぐ

気が向いた時にだけ書くブログ

ワンライナー 文字列マッチする行をカウントする方法

文字列マッチする行をカウントする方法をいくつかメモしておきます。

以下の内容が書かれたtestファイルからcountという文字列にマッチする行をカウントするという例で書いています。

$ cat test
count1
count2
count3

単純にgrepして目で数える場合

(なんかのコマンド) | grep (期待する文字列)
ex)
$ cat test | grep count
count1
count2
count3

マッチする行数だけ知りたい場合

(なんかのコマンド) | grep (期待する文字列) | wc -l
ex)
$ cat test | grep count | wc -l
3

カウント数が期待通りかを戻り値で判定したい場合

(なんかのコマンド) | grep (期待する文字列) | wc -l | grep -w (期待している数)
ex)
$ cat test | grep count | wc -l | grep -w 3
3
$ echo $?
0

カウント数が期待通りかを戻り値で判定しつつ、出力を表示したい場合

(なんかのコマンド) | grep (期待する文字列) | tee /dev/stderr | wc -l | grep -w (期待している数)
ex)
$ cat test | grep count | tee /dev/stderr | wc -l | grep -w 3
count1
count2
count3
3
$ echo?
0

おまけ カウントは判定に使うだけで表示させたくない場合

(なんかのコマンド) | grep count | tee /dev/stderr | wc -l | grep -w 3 > /dev/null
ex)
$ cat test | grep count | tee /dev/stderr | wc -l | grep -w 3 > /dev/null
count1
count2
count3
$ echo?
0

puttyのコネクションが切れるのを防ぐ方法

「Server unexpectedly closed network connection」というエラーでコネクションが切れて強制的にログアウトされるのを、防ぐ方法をメモしておきます。

f:id:yamano3201:20160909212923p:plain

「Sending of null packets to keep session active」という項目の「Seconds between keepalives」に値を入れるだけでOK。
これで定期的に空パケットを投げ込んでくれるので、コネクションが切れるのを防ぐことができます。

f:id:yamano3201:20160909213412p:plain

行頭にファイル名を表示する自作multitailコマンド

複数ファイルでtailfしたかったので調べたところ、以下のリンクを発見しました。

www.shigemk2.com

こちらを参考に、行頭にファイル名を表示するシェルスクリプトを作成したのでメモしておきます。


gist71d2ef944a96e3607842085280ffdca2

test1.logとtest2.logにログが追加された時のサンプルを載せておきます。
1つ目のターミナルでmultitail.shを実行して待ち受けて、2つ目のターミナルからログファイルに書き込みをしてみます。

2つ目のターミナル

$ echo "add log1" >> test1.log
$ echo "add log2" >> test2.log

1つ目のターミナル

$ ./multitail.sh test*.log
test1.log add log1
test2.log add log2

これで行頭にファイル名を表示することができました。

Macのログインパスワードをリセットする方法

基本的にはリンク先と同じですが、Macのログインパスワードをリセットする方法をメモしておきます。
weekly.ascii.jp

  1. 「option」キーを押しながらPC起動して復旧ボリュームを選択
  2. 「ターミナル」を起動して「resetpassword」と入力
  3. リセットするユーザを選択して新しいパスワードを入力
  4. PCを再起動して、「新しいキーチェーンを作成」を選択

以上でログインすることができました。

図書館で借りてきた夏休みに読む本8選

今年の夏休みは時間をあるので、本を読もうと思います。
最寄りの図書館で借りてきた本を載せておきます。

すべてがわかるIoT大全2016

Raspberry Pi 興味あり。

知識ゼロからのビッグデータ入門

知識ゼロからのビッグデータ入門

知識ゼロからのビッグデータ入門

Amazon Machine Learning 興味あり。

絵で見てわかるクラウドインフラとAPIの仕組み

絵で見てわかるクラウドインフラとAPIの仕組み

絵で見てわかるクラウドインフラとAPIの仕組み

表紙をよく見るので。

子供にプログラミングを学ばせるべき6つの理由

子どもにプログラミングを学ばせるべき6つの理由 「21世紀型スキル」で社会を生き抜く (できるビジネス)

子どもにプログラミングを学ばせるべき6つの理由 「21世紀型スキル」で社会を生き抜く (できるビジネス)

これもよく見るので。

「なぜ」で始める要件定義

「なぜ」で始める要件定義(日経BP Next ICT選書)

「なぜ」で始める要件定義(日経BP Next ICT選書)

メールはなぜ届くのか

メールはなぜ届くのか (ブルーバックス)

メールはなぜ届くのか (ブルーバックス)

コーチングの手法と実践がよーくわかる本

なかなか下が入らないので、定期的に本で復習しておかないと。

AWSの新機能 Application Load Balancer が発表されました

アプリケーションレベルでのLoad Balancerが発表されたようです。

dev.classmethod.jp

今までできなかったパスベースのルーティングができるようになったのは嬉しいですね。

Kindle Unlimitedで最初に選んだ10冊の本

Kindle Unlimitedは、電子書籍が月額980円で読めるサービスです。
30日無料ということでさっそく登録したので、最初にダウンロードした10冊の本を紹介したいと思います。

紙の本ではなく電子書籍ということで、さらっと復習用に読める本を中心に選んでいます。
私の場合、じっくりコードを書きながら読む場合は紙で買うので。

スペシャリストが解説するAmazon Web Service

仕事でAWSを使うことが多いので。

ネットワークSEハンドブック

スマートPython プログラミング

Raspberry piに興味あるので。

1日で読めてわかるTCP/IPのエッセンス

何となくJavaScriptを書いていた人が一歩先に進むための本

仕事でまったく書かないので定期的に復習しておかないと。

JavaScriptの理解を深めた人がさらにもう一歩先に進むための本

最速の仕事術はプログラマーが知っている

最速の仕事術はプログラマーが知っている

最速の仕事術はプログラマーが知っている

ビジネスで使う機械学習

ビジネスで使う機械学習

ビジネスで使う機械学習

Amazon Machine Learning触ってみたいので読んでみる。

仕事は楽しいかね?

仕事は楽しいかね? (きこ書房)

仕事は楽しいかね? (きこ書房)

上位にあったので何となく。深い意味はない。ないはず。