1

以下では、複数のディレクトリにある可能性のあるファイルの最新バージョンを見つけようとしています。

ディレクトリの例:

~inventory/emails/2012/06/InventoryFeed-Activev2.csv    2012/06/05
~inventory/emails/2012/06/InventoryFeed-Activev1.csv    2012/06/03
~inventory/emails/2012/06/InventoryFeed-Activev.csv     2012/06/01

これがbashスクリプトです。

#!/bin/bash

FILE = $(find ~/inventory/emails/ -name INVENTORYFEED-Active\*.csv | sort -n | tail -1)
#echo $FILE #For Testing

cp $FILE ~/inventory/Feed-active.csv;

私が得ているエラーは次のとおりです。

./inventory.sh: line 5: FILE: command not found

スクリプトは、上記で試みたように最新のファイルをコピーする必要があります。

2つの質問:

まず、これは私が望むことを達成するための最良の方法ですか?第二に、上記の何が問題になっていますか?

4

2 に答える 2

6

見た目は良さそうですが、=看板の周りにスペースがあります。これは機能しません。試す:

#!/bin/bash

FILE=$(find ~/inventory/emails/ -name INVENTORYFEED-Active\*.csv | sort -n | tail -1)
#echo $FILE #For Testing

cp $FILE ~/inventory/Feed-active.csv;
于 2012-06-24T00:59:25.913 に答える
1

...上記の何が問題になっていますか?

変数の割り当て。=看板の周りに余分なスペースを置くことは想定されていません。以下が機能するはずです。

FILE=$(find ~/inventory/emails/ -name INVENTORYFEED-Active\*.csv | sort -n | tail -1)

...これは私が望むものを達成するための最良の方法ですか?

Probably not. But the best way depends on many factors. Perhaps whoever writes those files, can put them in a right location in the first place. You can also check file modification time, but that could fail, too... So as long as it works for you, I'd say go for it :)

于 2012-06-24T01:00:53.023 に答える