-1

データをテーブルにロードするプログラムを作成しています。私はすでに手順を作成しました。しかし、ディレクトリに異なるタイムスタンプを持つ複数のファイルがあるため、ファイルの処理に問題があります。

フィードの最新のタイムスタンプを検出し、そのタイムスタンプを選択するためのコードを教えてください。

たとえば、フィードの名前は PRODUCTS_I03_20130429.dat で、「PRODUCTS_I03」はフィードの名前です。

タイムスタンプから最新のフィードを検出したいだけです。

前もって感謝します!

4

3 に答える 3

0

次のようなことができます。

$ latest=$(echo -e "PRODUCTS_I03_20130429.dat\nPRODUCTS_I03_20130428.dat"|sort -r -t"_" -k3|head -1)
$ echo ${latest%_*}
PRODUCTS_I03

_ファイル名に2 つある場合にのみ機能します。はechoテスト用です。のようにチェックしたいパターンに置き換えてくださいls -1 PRODUCTS_*_*.dat

タイムスタンプがファイルの日付と同じ場合、次のようなものを使用できます。

$ latest=$(ls -1rt|head -1)
$ echo ${latest%_*}

または を使用して、(最終変更) タイムスタンプの実際の日付を取得できますstate -c %y $latest

于 2013-04-29T12:42:54.143 に答える
0

シェル スクリプトまたはコマンド ラインを使用している場合は、「ls -t」を試してください。逆の順序で使用したい場合は、「ls -tr」を使用してください。

于 2013-04-29T10:51:32.087 に答える
0
 ls *.dat | python -c "import sys,re; print sorted(sys.stdin, key = lambda x: re.search( r'(\d+)\.dat', x).group(1))[-1]"
于 2013-04-29T12:04:46.433 に答える