【发布时间】:2015-08-31 18:27:26
【问题描述】:
我目前正在尝试使用 bash 遍历某个目录中的所有文件。如果文件与以下正则表达式匹配,则输出文件名。如果没有,它会输出'not',然后是文件名。正则表达式应该过滤掉任何带有“。”的文件。在他们里面。
for f in * ; do
if [[ $f =~ "^[^\.]+$" ]]; then
echo "$f"
else
echo "not $f"
fi
done
它正确地循环遍历所有文件,但由于一个让我难过一段时间的原因,我不能让它只排除带有“。”的文件。在他们中。例如,在包含以下文件的目录中:
bashrc
gitconfig
install.sh
README.md
vimrc
脚本的输出是这样的:
not bashrc
not gitconfig
not install.sh
not README.md
not vimrc
我验证了正则表达式here。有什么想法吗?
【问题讨论】: