[英]shell/linux scripting only selecting certain files to FTP
目录中的csv文件列表需要进行验证。 每列都应通过自己的验证; 因此$ 1是第一个coulmn,不应为null,依此类推...
在csv文件通过每列的每个验证之后,它被认为是一个好的文件。 现在我该如何提取这些好文件,以便可以将它们通过ftp下载到另一个位置?
每次验证后,我应该只对每个文件进行ftp吗? (太多时间?)
创建好文件的名称列表,并将其传递到数组中,这样我以后就可以遍历该数组以将其传递给ftp?
到目前为止,这是我的尝试。
#!/bin/sh
for file in /source/*.csv
do
awk -F',' '{
$date_regex = '~(0[1-9]|1[012])[- /.](0[1-9]|[12][0-9]|3[01])[- /.](19|20)\d\d~';
if (length($1) == "")
break
if (length($2) == "") && (length($2) > 30)
break
if (length($3) == "") && ($3 !~ /$date_regex/)
break
if (length($4) == "") && (($4 != "S") || ($4 != "E")
break
if (length($5) == "") && ((length($5) < 9 || (length($5) > 11)))
break
}' file
#whatever you need with "$file"
done
如果检查失败,请从awk退出1。 当awk成功时,使用if语句传输文件。
#!/bin/sh
for file in /source/*.csv; do
if awk -F',' '{
# your multiple checks here.
if (length($1) == "") && (length($2) == "") && (length($2) > 30) && ...)
exit 1
}' "$file"; then [scp or ftp command as you like]; fi
done
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.