我有一个bash函数,它获取两个目录中的文件并将它们附加到一个文件中,我还有一个if语句来检查文件名是否已经存在。如果它不存在,就写出来。但是检查似乎不起作用,因为我可以看到文件名写了两次。
这是我的功能。
function getFiles {
for entry in "$outputDir"/*
do
if ! grep -Fxq "$entry" $rlog
then
echo ${entry##*/} >> $rlog
else
printf "\n filename exists \n"
fi
done
for files in "$dataCopy"/*
do
if ! grep -Fxq "$files" $rlog
then
echo ${files##*/} >> $rlog
else
printf "\n filename exists \n"
fi
done
}发布于 2015-07-09 12:16:19
由于使用grep -x或完全匹配,检查失败。
这是因为grep命令正在使用以下方法检查日志文件中的$entry:
grep -Fxq "$entry" $rlog但是,实际上是将${entry##*/}写入输出日志中。
echo ${entry##*/} >> $rloghttps://stackoverflow.com/questions/31317140
复制相似问题