如何根據當前日期刪除5天以前的文件。如何僅使用正則表達式刪除超過5天的文件
我的文件名是這樣的:
2016-01-01 Normal.csv
2016-01-02 Normal.csv
2016-01-03 Normal.csv
2016-01-04 Normal.csv
2016-01-05 Normal.csv
2016-01-06 Normal.csv
2016-01-07 Normal.csv
每天都在進入該文件夾一個新的文件。我想刪除5天以前的文件。
如何根據當前日期刪除5天以前的文件。如何僅使用正則表達式刪除超過5天的文件
我的文件名是這樣的:
2016-01-01 Normal.csv
2016-01-02 Normal.csv
2016-01-03 Normal.csv
2016-01-04 Normal.csv
2016-01-05 Normal.csv
2016-01-06 Normal.csv
2016-01-07 Normal.csv
每天都在進入該文件夾一個新的文件。我想刪除5天以前的文件。
sh中的示例 - 隨意將該方法翻譯爲「pentaho數據集成」使用的任何語言。
#!/bin/sh
keep=""
pre="("
for past in 0 1 2 3 4 5 ; do
one=`date -d-${past}days +%Y-%m-%d`
keep="${keep}${pre}${one}"
pre="|"
done
keep="${keep}) Normal.csv"
echo $keep
$ ./dsh.sh
(2016-01-08|2016-01-07|2016-01-06|2016-01-05|2016-01-04|2016-01-03) Normal.csv
我不清楚你是否想保留過去5天的日子;如果你不這樣做,改變應該足夠明顯。
從[評論](http://stackoverflow.com/questions/34670698/how-to-delete-files-older-than-5-days-using-only-regular-expression#comment57087145_34670698)_我想執行那個定期在pentaho數據集成中的表達._。不知道「pentaho」是什麼。如果這是使用Linux/Unix命令完成的,那麼爲什麼不使用[this comment]中的任何一個命令(http://stackoverflow.com/questions/34670698/how-to-delete-files-older-than-5只使用正則表達式#comment57087080_34670698) – Tushar
我也不知道'pentaho'是什麼,我只是展示了「算法」。如果你可以調用「從今天減去天數」的算法,也就是說。 –
使用內置日期函數比較日期。而不是使用文件名中的日期,請在比較後使用文件屬性來獲取創建日期和刪除日期。 **不要使用正則表達式** – Tushar
您可能最終會得到像(day1 | day2 | day3 | day4 | day5)這樣的正則表達式,這似乎很愚蠢。爲什麼不使用文件創建或修改時間對你來說更合理? –
請給我答案。請不要給建議。 –