在OS X终端中,我具有以下内容:
for filename in ^.* 2\.jpeg$; do printf "$filename\n"; done;
我想匹配当前文件夹中以文件名“ 2.jpeg”结尾的文件名
,但未被识别为正则表达式,并且未搜索当前目录。它只是打印两个字符串:
^.*
2\.jpeg$
很显然,我想对这些文件做更多的事情,但是我无法匹配它们。将正则表达式放在反引号中似乎也无济于事。
答案 0 :(得分:2)
您需要使用全局模式,正则表达式不适用于for ... in ...
构造。并且不要打印这样的变量,请使用echo
或printf '%s\n' "$variable"
。
for filename in ./*' '2.jpeg; do
echo "$filename"
done
答案 1 :(得分:0)
您可以执行以下操作:
for filename in *2.jpeg; do echo ${filename}; done
这为我提供了以下内容:
for filename in *2.jpeg; do echo ${filename}; done
2.jpeg
a2.jpeg
在包含3个文件的目录中:
touch 1.jpeg
touch a2.jpeg
touch 2.jpeg