Grep
如何列出不包含特定文件名的目錄名?
我有數百個目錄,在每個目錄中都有文件名中帶有日期的文件,如下所示:
$cd dir1 $ls 20190915.file.gz 20190916.file.gz 20190917.file.gz ...
有時會發生某個文件沒有在某個文件夾中生成。繼續上一個範例,dir2 中可能缺少文件20190916.file.gz :
$cd dir2 $ls 20190915.file.gz 20190917.file.gz ...
如何僅列出不包含20190916.file.gz的目錄名稱?
$find . | grep 20190916
會列出所有包含這個文件的文件夾,所以基本上我只需要以某種方式反轉這個命令的輸出
假設目錄沒有嵌套,遍歷目錄並檢查每個目錄中是否存在文件。
for d in */; do if ! [ -e "$d/20190916.file.gz" ]; then echo "Missing $d/20190916.file.gz" fi done