Bash

查找同名但副檔名不同的文件

  • November 15, 2021

我有一個遺留應用程序(不受支持),可以按需生成 XLS、XLSX、DOC 和 DOCX 的 PDF 文件。該應用程序的磁碟已滿,我們需要刪除這些 PDF。所以我正在尋找一個腳本,它可以讓我找到所有這些 PDF 並在以後刪除它們。

我已經做了一些研究,這個接縫做了類似的事情,但是我失去了完整的文件夾路徑以及文件副檔名和大小,所以我可以手動查看和檢查:

find . -exec bash -c 'basename "$0" ".${0##*.}"' {} \; | sort | uniq --repeated

zsh

set -o extendedglob
print -rC1 -- **/*.(#i)pdf(ND.e['()(($#)) $REPLY:r.(#i)(doc|xls)(x|)(N.Y1)'])

將列出pdf至少有一個具有相同根名的 doc/docx/xls/xlsx 正常文件的正常文件(副檔名與 不區分大小寫匹配(#i))。

替換print -rC1( print raw on 1 Column)rm以刪除它們。

引用自:https://unix.stackexchange.com/questions/677645