-4
如何編寫將包含單詞「red」的目錄中的所有JPEG圖像輸出到名爲「red_photos.txt」的文件的命令。在文件名中輸入具有特定單詞的目錄中的所有JPG圖像的寫入命令
如何編寫將包含單詞「red」的目錄中的所有JPEG圖像輸出到名爲「red_photos.txt」的文件的命令。在文件名中輸入具有特定單詞的目錄中的所有JPG圖像的寫入命令
生成包含紅色的文件很簡單;你可以用*red*
這個模式來做到這一點。棘手的部分是找出這是否是一個JPEG文件。你可以這樣做
for f in *red*
do
if file $f | fgrep -q ' JPEG '
then
echo $f >>red_photos.txt
fi
done
兩個問題是作爲一個練習(因爲它們不直接相關的問題):
如果有含紅色真的很多文件,你可能會得到一個「參數列表太長」的錯誤。
如果包含紅色沒有文件,你可能會得到一個錯誤信息說,通配符不匹配任何文件(根據設置在你的bash腳本)。
爲什麼不使用'mv'來重命名文件呢? – hedgehog
因爲您將移動所有文件,而不僅僅是包含JPEG圖片的文件。由於您無法從文件名知道它是否爲JPEG,因此您必須單獨處理每個文件。不可否認,這也不是100%安全的,因爲'file'命令不能做出超過教育的猜測(即它可能產生誤報),但總體上它是可靠的。 – user1934428
哦,我看...謝謝你的解釋:) – hedgehog