我正在使用Dropbox Uploader,并且能够生成文件列表,其输出如下$line
。我想部分匹配某些文件,但无法使此正则表达式正常工作。我已经在regexr.com中尝试了它,但是它不能用
./dropbox_uploader.sh list | while read line
do
if [[ $line =~ /person_(.*}?).sql/g ]];
then
echo "match";
else
echo "no match";
fi
#echo "$line"
done
电流输出 $list
> Listing "/"... DONE
[F] 168953708 person_02-15-2017_21-01-42.sql
[F] 170024815 person_02-17-2017_11-42-01.sql
[F] 170012760 person_02-17-2017_12-00-02.sql
预期产量以上
person_02-15-2017_21-01-42.sql
person_02-17-2017_11-42-01.sql
person_02-17-2017_12-00-02.sql
我本质上是试图匹配具有文件名的行并仅输出该文件名。
如果您正在寻找一种更强大的正则表达式方法,请bash
执行
while IFS= read -r line
do
if [[ $line =~ .*person_([[:alnum:]|_|-]+)\.sql ]]; then
printf "person_%s.sql\n" "${BASH_REMATCH[1]}"
fi
done <file
产生结果为
person_02-15-2017_21-01-42.sql
person_02-17-2017_11-42-01.sql
person_02-17-2017_12-00-02.sql
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句