所以這真的可以分爲兩個任務:
你是不透露你的文件是如何組織的,但如果你有類似boom20140112/a.txt
和boom20140112/b.txt
形成一組,和foo20140111/a.txt
和foo20140111/c.txt
另外,你可以用
dates() {
printf "%s\n" *201[0-9][0-9][0-9][0-9][0-9]/. |
sed -e 's%^[0-9]*%%' -e 's%/\.$%%' |
sort -u
}
找到的日期如果你的套看起來不同,你也許可以適應這一點。總體思路是獲取相關文件名的列表,去除不是日期的部分,並刪除任何重複項。現在你有一個日期列表。
這裏是另一個實現,它假定您的文件名爲tags/tags_(date)_a.txt
和tags/tags_(date)_b.txt
和input/samples_(date).txt
形成每個日期的一個集合,其中日期的格式如2014-01-12。
dates() {
printf "%s\n" input/* tags/* |
sed 's/.*_\(201[1-9]-[0-9][0-9]-[0-9][0-9]\)[_.].*/\1/' |
sort -u
}
鑑於此,請在日期上循環並在每個集合上運行您的命令。
dates | while read -r date; do
command *$date/*
done
這似乎是一個非常專業的要求,我從來沒有聽說過它的工具。 – Barmar
你有幾套或幾百套?他們有不同的文件名,或者他們在單獨的目錄或...?日期是如何編碼的文件名? – John1024
任務「是否爲此給定日期存在任何文件」或「是否存在文件存在的日期」?如果是後者,日期範圍是多少? – tripleee