Bashはファイル名のリストを.csvでのみフィルタリングし、日付の順序(タイムスタンプではなく名前の日付)に基づいてソートし、名前の日付順序に基づいて最新のファイル名を返そうとします。
[root@server test2]# curl -l "ftp.fakeurl.com.au/In Stock Daily CSV/" --user username:password
InStockDaily01.07.19.csv
InStockDaily01.07.19.xls
InStockDaily02.07.19.csv
InStockDaily02.07.19.xls
InStockDaily03.06.19.csv
InStockDaily03.06.19.xls
InStockDaily03.07.19.csv
InStockDaily03.07.19.xls
InStockDaily04.06.19.csv
InStockDaily04.06.19.xls
InStockDaily04.07.19.csv
InStockDaily04.07.19.xls
InStockDaily05.06.19.csv
InStockDaily05.06.19.xls
InStockDaily05.07.19.csv
InStockDaily05.07.19.xls
InStockDaily06.06.19.csv
InStockDaily06.06.19.xls
InStockDaily07.06.19.csv
InStockDaily07.06.19.xls
InStockDaily08.07.19.csv
InStockDaily08.07.19.xlsx
InStockDaily09.07.19.csv
InStockDaily09.07.19.xls
InStockDaily10.07.19.csv
InStockDaily10.07.19.xls
InStockDaily11.06.19.csv
ベストアンサー1
この試み:
curl -l "ftp.fakeurl.com.au/In Stock Daily CSV/" --user username:password |
grep '\.csv$' |
sort -t. -k3,3 -k2,2 -k1,1 |
tail -n 1
grep '\.csv$'
CSV行のインポートsort -t. -k3,3 -k2,2 -k1,1
フィールド区切り記号として、.
3 番目のフィールド年、2 番目のフィールド月、日付を持つ最初のフィールドでInStockDailyXX
ソートtail -n 1
最後の行(最新の日付)を取得する