我知道包含文件的目录是什么,我不知道,但我知道它的名字结尾(例如.txt),我知道那里&#39 ; s恰好是一个文件,在目录中有这样的结尾。
我已经尝试了以下代码:file=grep -w $1/*.txt
当$ 1是目录地址时根本没有帮助,file=$1/*.txt
也没有。
有没有办法实现我想要的东西?
答案 0 :(得分:0)
您正在寻找的是find
命令。
你可以像这样使用它(确保你在你想要搜索的目录中):
find . -iname '*.txt'
使用命令man find
了解有关该命令的更多信息。
答案 1 :(得分:0)
/usr/bin/find directory_name -iname "*.txt"
如果你想对那些搜索过的文件进行操作,你甚至可以使用find -exec
答案 2 :(得分:0)
如果你知道精确的目录和一个与任何其他文件都不匹配的通配符,你可以运行一个只循环一次的循环。
for file in "$1"/*.txt; do
: "$file" refers to your file here
done
当然,在很多情况下,您并不需要知道确切的文件名。如果要在与通配符匹配的文件上运行grep
,请执行以下操作:
grep "xyzzy" "$1"/*.txt