如何解决遍历路径文件的 Bash 脚本 您好,欢迎来到 Stack Overflow!
folder
folder 1 (1)/
/file1_1.txt
/file2_2.txt
folder 2 (2)/
/file2_1.txt
...
folder N (N)/
/fileN_1.txt
/fileN_2.txt
用一个脚本,我想遍历第一级的所有文件夹(文件夹1、文件夹2、文件夹3)并对每个.txt文件进行操作。
我尝试了什么:
folder=$1
length=$(expr length "$folder")
for subfolder in $folder/*;
do
subfoldername=${subfolder:$length+1}
for h in $subfolder/*;
do
echo "h is: "$h
done
done
echo $h 显示:
h is: bdcntest/folder
h is: 1
h is: (1)/*
h is: bdcntest/folder
h is: 2
h is: (2)/*
循环“for h in $subfolder/*;”接缝将 $subfolder 解释为字符串而不是路径。 我认为文件夹名称中的空格可能是问题所在,但我还没有找到解决方案。
有什么想法吗?
解决方法
您好,欢迎来到 Stack Overflow!
如果我正确理解你的问题,你想要这样的东西吗?
find folder/ -name "*.txt" -maxdepth 1 -type f -exec cat {} \;
显然,可以将 "cat"
更改为任何其他命令,此命令(或程序)将对目录 *.txt
中的 "folder/"
文件进行“操作”,最大深度为 1。
folder
显然也可以,更改为另一个文件夹。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。