[ruby]ag + rubyで一括置換するワンライナー
htmlやテンプレート内にメタタグを記述した際に「キーワード1,キーワード2」と,区切りで設定すべきところを、間違って「キーワード1、キーワード2」と、区切りにしてしまった際にagコマンドとrubyを組み合わせて一括置換できないかやってみました。
そしてできたのが以下のワンライナー
ag keywords app/views/ -l | xargs ruby -i -pe 'if $_.match(/keywords: /) then $_.gsub!(/、/, ","); else $_; end'
今回、 meta-tagsを使ってキーワード設定をしていたので、agコマンドでapp/views以下の「keywords」を含むファイルを検索して、該当ファイルに対してrubyで1行ずつ読み込み、「keywords: 」に該当する行の場合は、を,に置換するようにしています。
もう少し短く書けるようにしたいです。