rubyでワンライナー

複数のテキストファイルから任意の文字にマッチした「後の文字列」を抽出したい。

テキストファイルを作成

text mateでダミーテキストファイルを作成。
dummy text - いつの間にか27歳日記

aaa.txt、bbb.txt として保存。

find + xargs で処理させてみる

マッチした文字列を返すのはできる。
とりあえず「nulla」でマッチング。

find -s . -name "*.txt" | xargs cat |  ruby -ne '$_ =~ /nulla/; p $&'


でも$'(シングルクォーテーション)を使って↓みたいに書きたいのに
これではダメ。

find -s . -name "*.txt" | xargs cat |  ruby -ne '$_ =~ /nulla/; p $''

スクリプトのくくりをダブルクォーテーションに変えてみたけどだめ。
どうすりゃいい?

あきらめた

Dir.glob("./*.txt").each do |f|
  File.open(f,'r').each do |line|
    line =~ /nulla/
    puts $'
  end
end

再チャレンジ

find -s . -name "*.txt" | xargs cat |  ruby -ne "\$_ =~ /nulla/; p \$'"

スクリプトのくくりをダブルクォーテーションに
$をバックスラッシュでエスケープ。