シェルに詳しくない人はRuby でワンライナー

シェルに詳しくないけど, ターミナルでゴニョゴニョしたい.
何かの言語でワンライナーしてみたらいいかも.

基本

-e オプションをつけて実行すると 引数の文字列の部分が実行される

$ ruby -e 'puts "hello"'

応用

-n

-n オプションをつけると while getsend で囲った状態になる
$_ に入力された値が入る

ruby -ne  'puts $_'

cat test.txt | ruby -ne 'puts $_.count'

-p

-n オプションをつけると while getsprint$_; end で囲った状態になる
$_ を変更したりするといい

ruby -pe '$_.concat(".csv")' 

例 (hellow => hello への置換)

cat text.txt | ruby -pe '$_.gsub!(/hellow/, "hello")'

-a

-a オプションをつけると $F$_.split が入った状態になる
$FArray

ruby -ane '$F[0]' 

例 (python のプロセス全キル)

# プロセス一覧 | python のものを抜き出し | プロセスID 取り出し        | キル
ps -ax      | grep python         | ruby -ane 'puts $F[0]' | xargs kill -9

最後に

Unixコマンドに詳しくなくてもとりあえずこれさえあればなんとかなるきがする

別に Ruby で無くてもいい

Sign up for free and join this conversation.
Sign Up
If you already have a Qiita account log in.