1. SIS Lab
  2. >
  3. Blog
  4. >
  5. 数世代バージョンを持つファイル名から最新版以外を抽出する

数世代バージョンを持つファイル名から最新版以外を抽出する

更新日: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_20151212

sedとかawkとか使ってさくっと出来ないものかと思ってるのだが・・・。 勉強不足。

B! Pocket
スポンサーリンク

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.18

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

TECH

2012.04.19

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

TECH

2012.04.03

Padrinoを触ってみた