在我的图像文件夹中,我只想要图像,因此我将使用此命令找到所有视频文件“入侵者”(在 stackexchange 上的某处找到)
find folder/imageonly -type f -exec file -N -i -- {} + |sed -n 's!: video/[^:]*$!!p'
但如果我想要反向搜索呢?例如我想找到视频文件夹中所有非视频文件?
ps=i 不使用扩展名,因此必须使用标志“file -N -i..”
答案1
我只是使用 grep 而不是 sed (主要是因为我没有 sed 的经验)。但以下应该有效(并且在我的系统上有效):
find . -type f -exec file -N -i -- {} + | grep -v 'video/' | cut -d : -f 1
这预计没有:不过在文件名中。
答案2
将地址范围添加到您的sed
:
find folder/imageonly -type f -exec file -N -i -- {} + |
sed -n '/: video\/[^:]*$/!s!: [[:alnum:]]*/[^:]*$!!p'
/: video\/[^:]*$/!
告诉它在与用于匹配视频的模式不匹配的每一行上运行命令。