数世代バージョンを持つファイル名から最新版以外を抽出する
更新日: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
とか使ってさくっと出来ないものかと思ってるのだが・・・。
勉強不足。
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を使ってメール送信