Ruby ファイルから指定した文字列のある行のみを取得する
Rubyで、readlinesとgrepを使用して、ファイルから指定した文字列のある行のみを取得するサンプルコードを記述してます。rubyのバージョンは2.7.2を使用してます。
環境
- OS windows10 pro 64bit
- ruby 2.7.2p137
readlines使い方
readlinesを使用すれば、ファイルの内容を全部読み込んで配列化することが可能です。
hoge.txt内容
ファイルを読み込んで配列化する
l = File.readlines("hoge.txt")
p l
# ["hogefoo\n", "foohoge\n", "foofoo\n", "hogefoofoo\n", "foofoo"]
grep使い方
grepを使用すれば、配列から指定した文字列が含まれているもののみ抽出することが可能です。
arr = ["aaa", "bbb", "cac", "dad", "eee"]
p arr.grep(/a/)
# ["aaa", "cac", "dad"]
指定した文字列のある行のみを取得
このreadlinesを利用して、grepした結果から改行を削除することで、指定した文字列が含まれている行のみを取得することが可能です。
# ファイルの内容を全部読み込んでgrep後に、配列にする
lines = File.readlines("hoge.txt").grep(/hoge/)
# 改行文字を削除
lines = lines.map { |x| x.chomp }
# 表示
p lines
# ["hogefoo", "foohoge", "hogefoofoo"]
-
前の記事
Vue.js 属性を削除する 2021.12.11
-
次の記事
javascript lodashを使って配列内のオブジェクトのプロパティを指定して平均値を取得する 2021.12.12
コメントを書く