Regex bash~如何搜索目录中的文件
我有一份文件清单Regex bash~如何搜索目录中的文件,regex,bash,Regex,Bash,我有一份文件清单 shopping-list.txt our-shopping-list.txt test.txt my-test.txt 我想运行myscript shopping并获取包含单词shopping的两个文件。我想运行myscript我们的列表,只获取一个文件 现在我有这个 if [[ $fs =~ .*${*}*.* ]]; then echo $fs fi 它可以工作一点,但如果每个变量都有间隙,它就不会给我我们的购物清单,即myscript我们的清单如果
- shopping-list.txt
- our-shopping-list.txt
- test.txt
- my-test.txt
myscript shopping
并获取包含单词shopping
的两个文件。我想运行myscript我们的列表
,只获取一个文件
现在我有这个
if [[ $fs =~ .*${*}*.* ]]; then
echo $fs
fi
它可以工作一点,但如果每个变量都有间隙,它就不会给我我们的购物清单
,即myscript我们的清单
如果我键入myscript我们的清单
我有一大堆文件,想通过猜名字找到我需要的文件
我尝试应用@pacholik的代码
snippetdir="~/my_snippets/"
for filename in $snippetdir*; do
file=`basename "$filename"`
fs=${file%.*}
for i in ${*}; do
for j in *${i}*; do
if [[ $fs =~ .*$j*.* ]]; then
echo $fs
fi
done
done
done
使用justbash扩展(只需计算两次)。Bash从中加入
然后您可以迭代$文件
for i in $files; do
echo $i
done
这是一个简单的暴力循环
for file in *; do
t=true
for word in "$@"; do
case $file in
*"$word"*) ;;
*) t=false; break;;
esac
done
$t && echo "$file"
done
我相信这应该可以移植到任何POSIX外壳上,并且可能超越(旧的Solaris等)。我可以知道这个
${*}
做什么吗?ls*'shopping'*有什么问题吗?kiss如果[[$fs=~ shopping]]
@AvinashRaj${*}
表示任何变量。if语句的结果相同problems@choroba这与*${*}*
相同,谢谢@pacholik我似乎不知道如何将其合并到我的代码中,你能检查一下我在回答中添加的代码吗?@relidon:Edited。我以前误解过。
for file in *; do
t=true
for word in "$@"; do
case $file in
*"$word"*) ;;
*) t=false; break;;
esac
done
$t && echo "$file"
done