数世代バージョンを持つファイル名から最新版以外を抽出する
数世代バージョンを持っているようなファイルから、最新版だけ残す(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とか使ってさくっと出来ないものかと思ってるのだが・・・。
勉強不足。
Related contents
TECH
2017.06.25
TECH
2017.06.24
TECH
2016.06.05
TECH
2016.02.10
TECH
2014.12.13
TECH
2013.05.29
TECH
2013.05.18
TECH
2012.04.19