grep/sort/find を使用して一意の値を抽出する

grep/sort/find を使用して一意の値を抽出する

YYYYMMDD.Txt形式に応じて名前付きテキストファイルがたくさんあります(今日は20160420.Txt)。

各ファイルはデフォルトでタイムスタンプと一意のIDを含むログであり、各値はタブ区切り文字で区切られています。

たとえば、20160420.Txt次の値を使用します。

DATE        TIME   ID
20160420   0135   123456
20160420   0240   234567
20160420   1252   345678

このファイル内のすべての一意のIDを抽出する必要がありますが、過去6ヶ月間のみ抽出する必要があります。

問題は、すべてのファイルが先週再生成されたため、mtimeを使用できないことです(たとえば、mtimeはファイル名と一致しません)。

grep//を使ってfindこれを行う方法はありますかsort

ベストアンサー1

6ヶ月前の正確な日付を見つけるのは簡単ではありません。ただしfind、これを使用して実行する方法を知っている場合は、-mtimeファイル名の日付に基づいてファイルをタッチしただけです。

for x in *.Txt; do
   dd=${x%.Txt}
   touch -t "$dd"0000 "$x"
done

その後、使用mtime

おすすめ記事