我編輯這篇文章,以簡化它。 我與格式文件名: 07:34 FDE54B69F43633180FB5401F42E4D1B443BD37BB349B7A6CF073CE23CDF2E2EE.json_2016-02-22 08:56 注意,我在文件名的最後日期和時間之間的一個空間。如何遍歷每個文件使用查找和for循環
我正在使用此代碼來查找文件名並進行打印。 我想單獨打印每個文件名。
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
我在與末o文件名空間問題。
for files in "${files[*]}"
do
echo "filenames=""$files"
done
如果我使用「」,我會得到所有文件名一次,我不希望它。我需要遍歷每個文件名的循環。
我該怎麼做才能做到這一點?
-----這裏實際更新 ,我需要遍歷最新的文件第一次,所以我試圖做這樣的事情:
find /test/ -printf "%TY-%Tm-%Td %TT %p\n" -print0 | sort -r | while IFS= read -r -d '' file;
do
echo "$file"
done
,但它不能正常工作= |
這是在Bash中的數組擴展。你的腳本使用什麼shell? – paddy
有這麼**很多關於此代碼的錯誤 - 只是回答你的直接問題甚至不足以解決它。 –
@paddy,'$ {foo [*]}'是bash中的一個**破解的**數組擴展; ''$ {foo [@]}「'(帶引號)是這樣做的方式,它實際上保留了空白在一起,並且不會試圖在名稱內看起來像glob。 –