【发布时间】:2015-07-13 11:23:34
【问题描述】:
我在这里测试了正则表达式: http://regexr.com/3bchs
我无法让数组只打印正则表达式搜索词。
files=(`ls $BACKUPDIR`)
daterange='(2015\-06\-)[0-9]+\s?'
for i in "${files[@]}"
do
if [[ "$files[$i]" =~ $daterange ]];
then
echo $i
fi
done
输入:2015-06-06 2015-06-13 2015-06-20 2015-06-27 2015-07-04 2015-07-11
输出:
2015-06-06
2015-06-13
2015-06-20
2015-06-27
2015-07-04
2015-07-11
【问题讨论】:
-
您可以尝试使用
bash -vx <script>执行您的脚本,以查看如何评估这些值。这可能会揭示出问题所在。 -
您忘记了
$files[$i]中的{}。试试${files[$i]} -
@anubhava 我已经添加了输入
-
感谢你们,我已经解决了我的问题