Rubyやgit-gsubを使って正規表現で複数行を置換する part2

sinsoku.hatenablog.com

の続き。

回答 3

Ruby-0777 を指定するとファイル単位で読み込む方法を教えて頂きました。

$ cat foo.txt
foo

$ cat bar.txt
bar

$ cat buz.txt
foo
bar
buz

$ ruby -i -n0777 -e 'puts "hi, " + $_' foo.txt bar.txt buz.txt

$ cat foo.txt
hi, foo

$ cat bar.txt
hi, bar

$ cat buz.txt
hi, foo
bar
buz

詳細

-0777 のオプションは初めて知ったけど、 man ruby に記載されていました。

-0[octal]. (The digit “zero”.) Specifies the input record separator ($/) as an octal number. If no digit is given, the null character is taken as the separator. Other switches may follow the digits. -00 turns Ruby into paragraph mode. -0777 makes Ruby read whole file at once as a single string since there is no legal character with that value.

まとめ

複数のファイルを一括で編集するときに -0777 は覚えておくと便利そう。