初心者の質問相談にやさしく答えるスレ Part13at LINUX
初心者の質問相談にやさしく答えるスレ Part13 - 暇つぶし2ch257:login:Penguin
20/10/11 07:47:07.40 B4RTOxqM.net
Ruby で作った。ただし、ファイルを2回読んでるけど
TEXT = <<'EOT'
aa.html
foo
bb.html
cc.html
EOT
# 文字列を含む行番号を、配列に入れる
line_numbers = TEXT.each_line.with_object( [ ] ).with_index( 1 ) do | ( line, ary ), line_num | # 各行・蓄積変数・行番号
ary.push( line_num ) if line.include? "html" # 含む
end
# 上の配列から、連続している行番号だけを残す。2次元配列を平坦化する
consecutive_numbers = line_numbers.chunk_while{ |prev, nxt| prev + 1 == nxt }.
select { |ary| ary.length >= 2 }.flatten!
unless consecutive_numbers
puts "連続している行はありません!"
return # 処理なし
end
results = TEXT.each_line.with_object( [ ] ).with_index( 1 ) do | ( line, ary ), line_num | # 各行・蓄積変数・行番号
if line_num == consecutive_numbers[ 0 ]
consecutive_numbers.shift # 先頭の要素を取り除く
else
ary.push( line )
end
end
print results.join


次ページ
続きを表示
1を表示
最新レス表示
レスジャンプ
類似スレ一覧
スレッドの検索
話題のニュース
おまかせリスト
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch