我使用以下复杂命令管道来查找名称以.xma或.sma结尾的所有文件,然后在其中查找某个字符串并对结果进行排序。这是为了查找我系统上某个应用程序的所有文件,以查看我使用的版本(对于升级,迁移很重要)。
find . -path ./Library/Mail -prune -or -path ./Documents/Architecture/BiZZdesign_Profiles \
-prune -or -name \*.\[sx\]ma \( -exec grep -H lastSavedWith {} \; \
-or -exec grep -H createdBy {} \; \) |\
sed -E 's/([^:]+).*(Architect|Enterprise Studio) ?([^<]+).*/\2 \3: \1/'|sort
这很好用,我得到了我的清单。但是,使用此应用程序的旧版本创建的文件根本没有这样的字符串。因此,我需要找到任何名称以.xma或.sma结尾的文件,但其中没有任何字符串'lastSavedWith'或'createdBy'。有没有办法做到这一点?