В настоящее время я пытаюсь пропустить все файлы в определенном каталоге, используя bash. Если файл соответствует следующему регулярному выражению, он выдает имя файла. Если это не так, оно выводит «нет», а затем имя файла. Регулярное выражение должно отфильтровывать любые файлы, имеющие «.». в них.
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
I подтверждено регулярное выражение here. Есть предположения?
Спасибо так много! Я новый, это было бы просто так. – N8Stewart
Я бы, наверное, пошел с '[[$ f = ~ \. ]] 'и перевернул блоки, если бы я писал это в первую очередь. –
@EtanReisner, ... или '[[$ f = *. *]]'. –