bash - 如果文件夹名称在bash中的变量中,如何遍历文件夹中的所有pdf文件?
问题描述
我有两个文件夹 original_images 和 pdf_backup。这些文件夹包含 pdf 文件,如果我将该位置保存在变量中,如何循环遍历所有 pdf 文件。
if some count > 10
location=/home/BACKUP/teamshare2/my\ Raw\ Data/"$1"/"$2"/"$3"/original_images/*.pdf
else
location=/home/BACKUP/teamshare2/my\ Raw\ Data/"$1"/"$2"/"$3"/pdf_backup/*.pdf
for f in $location
---pdf files---
当我这样做时,for loop
没有执行,但是如果我直接给出该路径意味着循环正在执行。为什么会这样?我该如何解决这个问题?先感谢您
解决方案
不要将通配符存储在变量中;只需将路径的固定部分存储在变量中,将对它的引用放在双引号中,这样它就不会被路径中的空格混淆,然后将通配符部分不带引号:
if some count > 10
location="/home/BACKUP/teamshare2/my Raw Data/$1/$2/$3/original_images"
else
location="/home/BACKUP/teamshare2/my Raw Data/$1/$2/$3/pdf_backup"
for f in "$location"/*.pdf
(注意:我还切换到更简单的全双引号格式设置location
,而不是混合转义和双引号。)
推荐阅读
- java - 基于条件从Java中的Multi-Level xml读取节点
- matlab - 如何在matlab中创建具有特定等级的mxn矩阵?
- google-sheets - 如何使 Last Edit 时间戳特定于每个选项卡,并在将来添加多个选项卡?
- azure-storage - Azure blob 存储:使用 cloudBlockBlob.uploadBlock Java API 上传 blob 时缺少 CONTENT-MD5
- javascript - 从Javascript中的另一个字符串获取字符串
- javascript - 未捕获的类型错误:无法读取 null 的属性“单击”
:7:70 - flutter - 如何将原始数据放入 Flutter(Dart) 中的 http get 请求中?
- c# - 如何处理:Warning MSB3182: File name 'Resources\....File.txt' 超过 100 个字符
- amazon-aurora - AWS DMS 如何验证源数据和目标数据?
- javascript - 如何使用 JavaScript 在静态 HTML 网页上为脚本 src 字符串添加 Unix 时间戳?