コマンドライン引数に指定されたファイルに書かれてある文字列をソートし直して1行ずつ新たなファイルに出力するRubyスクリプトを書いた。
ファイルの文字列をソートし直しててファイルに出力するRubyスクリプト
# -*- coding: utf-8 -*- input_file = ARGV[0] added_filename = '_in_line' # 入力ファイルネームが'hoge.txt'なら出力ファイルネームは'hoge_in_line.txt'とする output_file = File.basename(input_file, '.*') + added_filename + File.extname(input_file) File.open input_file do |i_file| File.open output_file, 'w' do |o_file| o_file.puts i_file.read.split(/\s+/).sort end end
こんなファイルを
aaa ddd eee ggg fff ccc hhh iii bbb
以下のように出力し直す。
aaa bbb ccc ddd eee fff ggg hhh iii
動機として、 $ brew list
で出力されたものを1行ずつ改行した形でファイルに出力したものが欲しかったので書いた。
ただ、すぐに $ brew list > hoge.txt
とリダイレクトを使えば望むものが手に入ることが分かったので、今後は使うことはないと思う。