我有一個名為:f{number}.ext
在另一個目錄中存在一個目錄列表:
- 001
- 002
- 003
- ....
每個目錄都包含一個檔案列表:
- f001.ext
- f002.ext
- …
每個目錄中的檔案名稱都會重複,但這些是不同的檔案。我需要f{number}.ext
在引用的目錄列表中找到此文件 ( ) 並獲取根目錄名稱(例如003
),或者如果找不到該文件則打印一條訊息。
我可以用於fdupes
此操作嗎?
答案1
你可以使用這個 bash 腳本:
#!/bin/bash
for iNumb in '001' '002' '003' '004' '005'; do
myFile=`ls */f${iNumb}.ext 2>&1`
if [ "${myFile:0:2}" == "ls" ]
then
echo "File f${iNumb}.ext: File not found"
else
echo "File f${iNumb}.ext:" `dirname ${myFile}`
fi
done
- 處理
2>&1
找不到檔案時 ls 的錯誤訊息(例如ls: cannot access */f005.ext: No such file or directory
)。 - 測試
if
或 字串是否myFile
以 an 開頭ls
(然後我們遇到錯誤)或不是(然後我們找到一個檔案)。 dirname
返回目錄。basename
將返回檔案名稱。