您的命令不起作用的原因是您只檢查關鍵字標記。位置是一個不同的標籤,你會檢查那裏的信息。
不幸的是,Exiftool不能僅列出具有匹配數據的標籤。您可以通過另一個命令行程序(如Find(因爲您在Windows上)或Grep(其他平臺))管道輸出。在這種情況下,您的命令行如下所示:
exiftool -g1 -a -s FileOrDir | Find "Odeon"
這會列出所有包含您的信息的標記。
後,你發現標籤,然後你可以無需使用此命令備份文件中刪除,與標籤的名稱替換TAG:
exiftool -overwrite_original -TAG= FileOrDir
注意到,這個命令會從刪除該標籤的所有文件,如果你指定一個目錄。如果你想更具選擇性,標籤只包含文本「Odeon」,那麼你可以使用這個命令。請注意,該命令區分大小寫。它不會刪除「oDeON」或其他變體:
exiftool -overwrite_original -TAG-="Odeon" FileOrDir
如果您想要將包含「Odeon」的某個標記作爲較長字符串的一部分刪除並且不區分大小寫,則可以添加-if
選項。
exiftool -overwrite_original -if "$TAG=~/odeon/i" -TAG= FileOrDir
最後,還有使用-api "Filter=…"
選項的霰彈槍方法。這需要版本10.05或更高版本。此命令:
exiftool -overwrite_original -api "Filter=s/odeon//gi" -tagsfromfile @ -all:all FileOrDir
將從文件中的所有標記中刪除「odeon」(不區分大小寫)。它不會刪除標籤,如果odeon是較長字符串的一部分,則字符串的其餘部分將保留。例如,如果Location等於「Odeon」,它將變成空白字符串。如果描述是「這是Odeon」,它將變成「This is」。 「Filter =」之後的部分是perl正則表達式替換,您可以通過查看正則表達式來進一步優化它。
如果一個標籤包含多個分隔的詞,如「Odeon,London,UK,Europe」,並且我使用了您的最後一種方法,那麼我會得到帶有逗號(或分隔符)的「英國倫敦,歐洲」 。我如何刪除整個Odeon部分,包括分隔符,只留下「倫敦,英國,歐洲」? – PeterCo
這取決於標籤是什麼。這聽起來像標籤可能是一個列表類型的標籤,如關鍵字或主題(這兩個都是用來保存關鍵字的標籤)。如果是這樣的話,它會在標籤中留下一個空白條目,並且使用'api Filter'選項不是您想要使用的。先試試這個命令 'exiftool -overwrite_original -ALL- = Odeon FileOrDir'然後看看它是否適合你。 – StarGeek