【发布时间】:2015-04-20 17:47:33
【问题描述】:
我有两个变量,都是由脚本移动的文件名列表。
变量 1: 由较大变量的“读取”循环生成。在任何给定时刻,它只包含一个文件名。
var1 = pic1.jpg
var1 = pic2 副本.jpg
var1 = pic3(dup).jpg
var1 = pic4.jpg
var1 = 子文件夹/子文件夹图片.png
如上所示,文件名可以包含空格,但并非总是如此。
变量 2:包含文件列表的字符串,每个文件名由 \n 换行符分隔。
var2 = pic1.jpg
\npic2 duplicate.jpg\npic3(dup).jpg\npic4.jpg
我正在尝试测试 var1 的内容是否可以在 var2 中找到:
listcontains() {
for list_item in $1; do
# Does $list_item exist in $2?
if [[ "$list_item" =~ "$2" ]]; then
return 0
else
return "1"
fi
done
}
# Call function to see if var1 is in var2
if listcontains "$var1" "$var2"
then
# var1 is in var2; do stuff...
else
# Do different stuff...
fi
这个逻辑显然是错误的,或者语法错误,因为它现在总是返回一个不匹配的:
does pic2 exist in pic2 duplicate.jpg
pic2.jpg
pic3(dup).jpg
pic3.jpg?
no
does pic3(dup).jpg exist in pic2 duplicate.jpg
pic2.jpg
pic3(dup).jpg
pic3.jpg?
no
我还在学习 bash,所以如果有人可以帮助我,我将不胜感激。
【问题讨论】:
标签: regex linux bash shell wildcard