所有文件都駐留在一個文件夾中。文件名看起來像如下:基於文件名中的時間戳值複製文件
1695_6892_00000_20160321235959.file.name.csv.gz
第三子(第二_
後)是時間戳。
如何將所有帶有timestamp < 20150531000000
的文件複製到另一個文件夾my_folder
?
所有文件都駐留在一個文件夾中。文件名看起來像如下:基於文件名中的時間戳值複製文件
1695_6892_00000_20160321235959.file.name.csv.gz
第三子(第二_
後)是時間戳。
如何將所有帶有timestamp < 20150531000000
的文件複製到另一個文件夾my_folder
?
試試這個:
for i in *.gz; do test `echo $i | cut -d _ -f 3` -lt 20150531000000 && cp $i my_folder; done
而且......您可以用awk。
for i in $(ls -1 org_folder | awk -F"_" '{ if ($3 < 20150531000000) print $0 }'); cp mv org_foler/$i my_folder/; done
ls | awk -F'_' '$3<20150531000000{print}'
應該是你要移動的文件,所以 for f in "$(ls|awk -F'_' '$3<20150531000000{print}')"; do mv "${f}" elsewhere/ ;done
謝謝朱利安:) – Dennis
@Dennis不客氣。 :) –
Upvote不使用'ls',而是正確使用shell通配符。 – tripleee