如何检查某个文件的名称是否与if
子句中的某个模式匹配(例如,其中包含“SSS”)?我的变体似乎不起作用(它始终为 false)。
for f in B/* ; do
if [ $f = .*SSS.* ] ; then
# if [ -f $f ] -and -regex ".*SSS.*"; then
echo $f
fi
done
答案1
您需要双括号,并且不需要“。” (Shell 通配符不需要 sed 正则表达式)
for f in B/* ; do
if [[ $f = *SSS* ]] ; then
echo $f
fi
done
谷歌给你 https://stackoverflow.com/questions/2348379/use-regular-expression-in-if-condition-in-bash