日本生まれのスクリプト言語「Ruby」。
Railsと共にWebアプリ用のプログラミング言語として使用される事も多い言語ですが、Perlの流れを引き継ぐテキスト処理用スクリプト処理言語として使用しても便利です。
本日紹介する「Ruby one-liners cookbook」も、そのようなRubyを使ってテキスト処理を行い方におすすめのWebページです。ただしスクリプトファイルを別途用意するのではなく、コマンドラインから直接呼び出すことができる「ワンライナー」に注目しているところが特徴となっています。
同ページには、ワンライナーの導入として、以下のようなサンプルが掲載されています。
ruby -e 'puts readlines.uniq' *.txt
- 入力ファイルのリストから行が重複している場合には、1つのコピーのみを保持する。ruby -e 'puts readlines.uniq {|s| s.split[1]}' *.txt
- 2番目のフィールドを重複基準として、重複行の最初のコピーのみを取得する。ruby -rcommonregex -ne 'puts CommonRegex.get_links($_)' *.md
- サードパーティのCommonRegexRubyライブラリを使用してURLのみを抽出する。
grep、sed、awk などのUNIXツールを組み合わせて使用する場合と比較し、 Rubyを使用することの主な利点は、豊富な機能を持つ正規表現エンジンや標準ライブラリ、サードパーティ製のライブラリの存在にあると、同サイトの作者は説明しています。
導入の後は、行の処理やフィールドセパレーター、レコードセパレーター、複数ファイルの入力の取り扱いなど、個別の話題に関する説明が続いています。
同サイトのPDF/EPUB版が有料で販売されているほか、ソースコードはGitHubで公開されています。Rubyを使ったワンライナーを極めたい方は参考にしてみてはいかがでしょうか。