我编辑了这篇文章以简化它。 我有以下格式的文件名: 07:34 FDE54B69F43633180FB5401F42E4D1B443BD37BB349B7A6CF073CE23CDF2E2EE.json_2016-02-22 08:56 请注意,我在文件名末尾的日期和小时之间有一个空格。
我正在使用此代码查找文件名并将其打印出来。 我想分别打印每个文件名。
files=($(find test/ -printf "%TY-%Tm-%Td %TT %p\n" | sort -r))
#IFS=' test/' read -r -a array <<< "$files"
for files in ${files[*]}
do
echo "filenames="$files
done
我在文件名末尾的空间方面遇到了问题。
for files in "${files[*]}"
do
echo "filenames=""$files"
done
如果我使用&#34;&#34; ,我会立即获取所有文件名,而我不想要它。我需要循环迭代每个文件名。
我该怎么做才能实现这个目标?
-----在这里更新 实际上,我需要首先迭代最新的文件,所以我尝试做这样的事情:
find /test/ -printf "%TY-%Tm-%Td %TT %p\n" -print0 | sort -r | while IFS= read -r -d '' file;
do
echo "$file"
done
但它无法正常工作= |
答案 0 :(得分:0)
find . -name 'FDE*json_2016*' -print0 | sort -r | xargs -0 -I {} echo reading {}
为我做了诀窍。不过,您应该更改名称模式。