数世代バージョンを持つファイル名から最新版以外を抽出する
更新日:2020.03.31
作成日:2015.03.27
数世代バージョンを持っているようなファイルから、最新版だけ残す(2世代以上持っているものを抽出する)方法。
前提
ファイル名_yyyymmddという形式になっている。 あらかじめファイル名をソートしておく。
ファイルリスト。
TBTA1001_20140222
TBTA1001_20150520
TBTA1002_20151212
TBTA1002_20151222
TBTA1003_20140609スクリプト
File.open('filename.txt') do |f|
  prev = ""
  f.each_line do |line|
    name = line.split(/_\d{8}/)
    if prev.split(/_\d{8}/) == name
      puts prev
    end
    prev = line
  end
end結果
TBTA1001_20140222
TBTA1002_20151212sedとかawkとか使ってさくっと出来ないものかと思ってるのだが・・・。
勉強不足。
Related contents

TECH
2017.06.25
[Ruby]mapメソッドの省略記法

TECH
2017.06.24
[Ruby]Moduleの使い方

TECH
2016.06.05
google-api-ruby-clientからGoogle Adsense Management APIを操作する方法

TECH
2016.02.10
slack-apiを利用してRubyからSlackへメッセージとファイルをポストする方法

TECH
2014.12.13
Jekyllのタグとカテゴリを整理するために、一覧表示するWebアプリ(個人用)をつくった

TECH
2013.05.29
carrierwave

TECH
2013.05.18
sqlite3-rubyを使ってSQLite3ファイルからの検索結果をHashとして読み込む

TECH
2012.04.19
RubyからGMailを使ってメール送信