2017-10-11 148 views
-1

我是Unix shell腳本的新手。掌握了基本的命令知識並試圖編寫我的第一個腳本。 問題:我有一個包含大量PDF和DOC文件的存檔文件夾。他們很多都有PDF和DOC版本,例如hello.doc和hello.pdf。我想用相同的文件名刪除這些「重複」的所有pdf版本,並且實際文件內容是否相同並不重要。 我在過去的一週嘗試尋找一些解決方案,但通常我只找到基於文件內容的解決方案。Unix Shell腳本刪除具有相同文件名但文件擴展名不同的重複文件

非常感謝您的幫助。

+0

歡迎來到StackOverflow!請查看[如何提問](https://stackoverflow.com/help/asking)指南,特別是[如何創建最小,完整和可驗證的示例](https://stackoverflow.com/help/mcve) – AesSedai101

回答

1

你可以嘗試這樣的:

for i in *.doc; do 
    pdffile=$(echo "$i"|sed 's/\.doc/\.pdf/') 
    if [[ -f "$pdffile" ]]; then 
    rm "$pdffile" 
    fi 
done 

哪些呢:在當前目錄下的每個doc文件,是一個文件具有相同的名稱,但PDF,然後刪除PDF文件。

+0

非常感謝您的及時迴應。我爲我的「不道德」道歉。我明白「我」是一個變量,但是我還需要首先聲明它,還是可以實現代碼? – PeterS

+0

@PeterS你可以按照原樣運行代碼,'''在'for'語句中聲明 – Will

+0

嗨我試過了,總是得到相同的錯誤:::: rm:無法刪除'pdffile':沒有這樣的文件或目錄 – PeterS

相關問題