#!/usr/bin/env perl # -*- coding: utf-8 -*- use strict; use warnings; # ファイルリストを受け取る my @fns; while (<>) { chomp; next if not -e $_; push @fns, $_; } @fns = sort @fns; # 生成時間(=ファイル名)の順にソート my %items; for (my $i = 0; $i < @fns; $i++) { open(my $fh, "<", $fns[$i]) or die; my %cur; while (<$fh>) { chomp; my ($id, @c) = split(/\t/, $_); $items{$id}{first} ||= $fns[$i]; $items{$id}{last} = $fns[$i]; $items{$id}{content} = [$id, @c]; $cur{$id} = 1; } close($fh); } foreach my $id (sort keys %items) { my $first = $items{$id}{first}; # 初めてみたとき my $last = $items{$id}{last}; # 最後にみたとき my $alive = $last eq $fns[-1] ? 1 : 0; # まだ生きてる? print join(" ", $id, $alive, $first, $last, #@{$items{$id}{content}} )."\n"; }
% ls -1 log/* log/20160315.txt log/20160316.txt log/20160317.txt log/20160318.txt log/20160319.txt log/20160320.txt log/20160321.txt % head log/*.txt ==> log/20160315.txt <== B0184BHSQU 1250 B012CIAZ34 1260 ==> log/20160316.txt <== B0184BHSQU 1250 B012CIAZ34 599 ==> log/20160317.txt <== B012CIAZ34 648 ==> log/20160318.txt <== B00KMRKDTY 702 ==> log/20160319.txt <== B00KMRKDTY 702 ==> log/20160320.txt <== B00KMRKDTY 702 ==> log/20160321.txt <== B00KMRKDTY 702 % ls log/*.txt |./lifespan.pl B00KMRKDTY 1 log/20160318.txt log/20160321.txt B012CIAZ34 0 log/20160315.txt log/20160317.txt B0184BHSQU 0 log/20160315.txt log/20160316.txt
●ペンケースに収納しやすいスリムボディは、ペンスタンドに入れてもかさばりません。
●刃渡り60mmでスイスイ切れます。
●特徴的な立体ハンドルにより、携帯できるサイズではさみの握りやすさを実現しました。
●キャップ付きで収納時も安心です。