我想创建一个简单的报告,计算我们从供应商处收到的文件。每个文件都是根据机场(供应商)货物的名称命名的,即
CUU~<part_number>~20120401.TXT
YVR~<part_number>~20120402.TXT
LAX~<part_number>~20120402.TXT
简而言之,我们收到的文件是从Microsoft Windows服务器以压缩形式发送给我们的。它们被我们的Linux RH服务器删除,我们用unzip -o filename.zip -d target_directory
解压缩它们。
我的代码查看解压缩文件的目标目录:
find . -name '*TXT' -exec ls '{}' \; |awk -F~ '{print $1"\t"$3}'|sort|uniq -c >report.out
输出告诉我自3月22日以来没有从YVR收到任何文件。将搜索范围缩小到find . -name 'YVR*TXT'
会产生相同的结果:自3/22以来没有文件。
我与YVR的对手告诉我,他们每天都会将文件FTP给我们,并通过电子邮件将我的日志文件通过电子邮件发送给我证明。我检查了FTP目录,删除了文件,权限都是+rwx
。我还检查了包含带有unzip -t zipfilename
的TXT文件的zip文件,但未发现任何问题。
我想在我的报告中尝试使用TXT文件时间戳,但我不清楚如何。制作报告的最佳方式是计算白天和机场代码收到的文件数量?
TIA,
克里斯。
PS:我的find
有printf
,我的系统有stat
。我可以使用吗?
答案 0 :(得分:0)
尝试这样的事情:
find . -printf '%Ty%Tm%Td~%f\n' | awk -F '~' '{count[$1$2]++} END {for (index in count) {split(index, SUBSEP, a); print a[1], a[2], count[index]}}'
答案 1 :(得分:0)
我的系统管理员刚刚通知我,没有为作为供应商数据的丢弃点的目录和文件正确设置ACL权限。实际上,用户ID显示为10000
,而所有用户ID都是字母数字。
将文件的所有权更改为我的用户ID后,我的代码输出现在显示文件确实在3月22日之后发送了......令人困惑。