svnの差分があるファイルをリストアップしたらawkが面白いことを知った

Filed under Subversion, プログラミング言語, 仕事ツール
Tagged as , , ,

svn diff

subversionで変更一覧を見るには次のコマンドを入力します。

1
$ svn diff

これで、ファイル名に続いて差分がdiff形式で表示されます。
しかし、変更箇所の詳細は不要で、変更ファイルのファイル名だけが欲しい、という状況になり、一覧を調べるのに何か便利なコマンドがないかと調べて、awkと組み合わせてリストアップするコマンドを見つけました。

1
$ svn diff | awk '/^Index/ {print $NF}'

参考サイト:http://www.02.246.ne.jp/~torutk/subversion/intro.html

エイリアス化

これを毎回入力するのは面倒なので次のように .bash_profile に書いて、エイリアス登録。

1
alias svn_diff_list='svn diff | awk "/^Index/ {print $NF}"'

awk導入

上記コマンドの後半はawkによる文字処理。
awkって名前は知っているけど、自分で使ったこと無いので、これを機にちょっと調べてみた。
awkの面白さが分かりやすかったのがこのページ(http://x68000.q-e-d.net/~68user/unix/pickup?awk)
ls -alで出てくる情報を空白区切りとみなして、5列目、9列目のみ表示したい場合には次のようなコマンドでOKなのだ!

1
$ ls -al | awk '{print $5,$9}'

おー!!これは面白い!!!
んで、そのなかでも、例えば、adminという文字列がある行のみ表示したい場合には、次のように正規表現で指定すれば、行を抽出できる。

1
$ ls -al | awk '/admin/ {print $5,$9}'

ちなみに正規表現にマッチした行をすべて表示するには次のような感じ。

1
$ ls -al | awk '/admin/ {print;}'

awk、奥が深いらしいのですが、導入はこれで十分ですね!あとは、必要に応じて調べればいい!


[AD]

↓AWKの項目もある!ちなみにAWKとは、作者3人の名前の頭文字。エイホ(Aho)、ワインバーガ(Weinberger)、カーニハン(Kernighan)。そう、あのカーニハンですよ!

言語設計者たちが考えること (THEORY/IN/PRACTICE)

出版社:オライリージャパン( 2010-09-27 )

定価:¥ 3,888

大型本 ( 536 ページ )

ISBN-10 : 4873114713

ISBN-13 : 9784873114712


↓awkを本格的にプログラム言語として勉強するならこれが良さそう。

sed & awkプログラミング 改訂版 (A nutshell handbook)

著者/訳者:Dale Dougherty Arnold Robbins

出版社:オライリー・ジャパン( 1997-10-01 )

定価:¥ 4,428

Amazon価格:¥ 4,428

大型本 ( 461 ページ )

ISBN-10 : 4900900583

ISBN-13 : 9784900900585


↓256倍シリーズのAWK本。

AWKを256倍使うための本 (Ascii 256倍)

著者/訳者:志村 拓 鷲北 賢 西村 克信

出版社:ASCII( 1993-08 )

定価:¥ 1,258

単行本 ( 277 ページ )

ISBN-10 : 4756101623

ISBN-13 : 9784756101624


Post a Comment

Your email is never published nor shared. Required fields are marked *

*
*

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)