Hatena::ブログ(Diary)

hminoの日記

2010-10-17

fastqファイルの本数を数えるワンライナー

wc -l hoge.fastq |ruby -na -e 'puts $F[0].to_i/4'

当然ですが、ファイルが壊れていないことを祈りましょう。

Rubyのワンライナーメモ

基本は -e オプションで、スクリプトを渡す。

ruby -e 'p RUBY_VERSION'

次いで、-nオプションを付けることにより、以下のような挙動となって、入力行を読み込む。

 while gets()
  $_=$_.chomp
  <指定したスクリプト文>
end

-e オプションは最後に来ることに注意。切り離した方が最初は分かりやすい?

読み込んだ行は、グローバル変数「$_」で参照出来る。

さらに、 -a オプションで、

while gets()
  $_=$_.chomp
  $F = $_.split
  <指定したスクリプト文>
end

となる。

-a オプションは -n や -p とともに用いて始めて有効。

以後、説明の追加予定

  • -p : -nと同じループ内で実行を行い、自動的に「$_」を出力する。
  • -i[extension] : 引数で指定されたファイルの内容を置き換える(in-place edit)ことを指定します。元のファイルは拡張子をつけた形で保存されます。拡張子がなければ、バックアップは行われず、変更されたファイルだけが残ります。

以下、参考、引用記事のリンク

Rubyの起動 コマンドラインオプション

http://www.ruby-lang.org/ja/man/html/Ruby_A4CEB5AFC6B0.html#a.a5.b3.a5.de.a5.f3.a5.c9.a5.e9.a5.a4.a5.f3.a5.aa.a5.d7.a5.b7.a5.e7.a5.f3

ワンライナーコマンドラインオプション

http://www.mapee.jp/ruby/post_50.html

Rubyワンライナー講座

http://blog.lilyx.net/2007/11/29/writing-one-liner-in-ruby/

ご挨拶

分子生物学計算機科学を学ぶ学生です。

覚え書きを少しずつ書きたいと思っています。

どうぞよろしくお願いします。