Если это файлы в текущем каталоге , которые вы хотите перечислить:
ls./*abc*
Для циклического просмотра этих файлов:
for fname in./*abc*; do
# do something with "$fname"
done
Если вы хотите найти их в текущем каталоге или где-либо в каком-либо подкаталоге (рекурсивно):
find. -type f -name '*abc*' -print
(это предполагает, что все имена, которые вы хотите найти, являются именами обычных файлов, т. е. не именами каталогов и т. д.)
Если вы хотите что-то сделать с этими именами:
find. -type f -name '*abc*' -exec sh -c '
for fname do
# do something with "$fname" here
done' sh {} +
Использование шаблона подстановки **
, доступного в некоторых оболочках (по умолчанию в zsh
и с shopt -s globstar
вbash
)для обратного сопоставления имен файлов:
for fname in./**/*abc*; do
# do something with "$fname"
done
С оболочкой zsh
, также убедившись, что мы сопоставляем только имена обычных файлов (, то есть не каталоги и т. д.):
for fname in./**/*abc*(.); do
# do something with "$fname"
done
Связанные:
Исправлено путем использования +
вместо /
в качестве разделителя.
sed -i 's+include "/etc/nginx/software.conf";++' website
Спасибо за помощь.