我的目录中包含许多文件,如:
IF_OCS0003STS20170109144902.csv
IF_OCS0005STS20170109151234.csv
IF_OCS0007STS20170109171408.csv
上述文件包含name_date_time.csv
格式。我试图通过检查文件是否存在而将每个文件存储在变量中。
下面的代码段仅用于检查样本的一个文件,但它根本不起作用:
#!/bin/bash
FILE_OCS0003STS= "$(basename ./cdr/IF_OCS0003STS`date -d "yesterday" '+%Y%m%d'`*.csv)";
if [ -e "./cdr/$FILE_OCS0003STS" ];
then
echo "File $FILE_OCS0003STS exist."
else
echo "File $FILE_OCS0003STS does not exist" >&2
fi
答案 0 :(得分:1)
我这里没有合适的shell来测试它,但是值得尝试一下:
DATESTRING=`date -d 'yesterday' '+%Y%m%d'`
FILE_OCS0003STS=`ls ./cdr/ | grep $DATESTRING`
可能应该使用find
而不是ls
,但是如果没有合适的shell来测试它,并且长时间没有使用bash,我肯定会得到错误的语法。像
FILE_OCS0003STS=$(basename `find ./cdr/ -name "$DATESTRING*"`)