2016-06-30 27 views
0

私は、ファイル名から日付を取得するためのコマンドまたは簡単な手順を探しています。私のファイル名は、複数の日付形式を持つことができます。ファイル名から日付を取得

例:

Filename      Format   Output 
filename_2016-01-01  filename_%Y-%m-%d 2016-01-01 
2016-01-01_filename  %Y-%m-%d_filename 2016-01-01 
20160101-filename   %Y%m%d_filename  2016-01-01 
1451606400-filename  %s-filename   2016-01-01 

私はいくつかの手順を探していますが、私は私の「フォーマット」を指定した場合、それは出力としてその形式から日付を返しますと言います。私は出力の形式について心配していません。私は巨大なスクリプトを期待していません。このような機能が既に存在するかどうかお知らせください。

他の手順がない場合は、作成する予定です。

+0

だから、むしろファイルが作成された時、あなたが返すようにしたい実際のファイル名のサブセットではありませんか?それはファイルに保存されていますか?画面に出力しますか?擬似的に必要な出力を与えます。 – mattias

+0

はい。ファイル名からの日付。出力を更新します。 – Prashanth

+0

ファイル名の残りの部分は常にわかりますか?たとえば、常に「Filename 」または「 _filename」または「 -filename」の場合、既知の部分を取り除くことはできませんか? – mattias

答えて

2

bashは何をしたいの一部を処理することができ、変数の参照解除の修正シンタックスを持っています

$ f=filename_2016-01-01 
$ echo ${f#*_} 
2016-01-01 

$ f=2016-01-01_filename 
$ echo ${f%_*} 
2016-01-01 

$ f=20160101-filename 
$ echo ${f%-*} 
20160101 

$ f=1451606400-filename 
$ echo ${f%-*} 
1451606400 
関連する問題