我正在寻找列出的正确方法
,然后将其导出到文件。
当前,我正在执行正常工作的以下操作:
ls -R --ignore={"Sample","Sample.*","sample.*","*_sample.*","*.sample.*","*-sample.*","*.sample-*","*-sample-*","*trailer]*"} "$filesSource" | grep -E '\.mkv$|\.mp4$|\.avi$' | sed -e 's/\(.*\)/\L\1/' | sort >> "$listFile"
感谢ShellChecker,我对此行有反馈,但我不知道该怎么做!
感谢您的帮助!
答案 0 :(得分:0)
为什么不尝试查找命令?
类似
找到YOUR_PATH-类型f-名称“ * .FIRST_EXTENSION” -o-名称“ * .SECOND_EXTENSION” | grep -v SOME_EXCLUSION | awk -F '{print $(NF-1)}'|排序> SOME_FILE
注意:仅当文件名仅包含1“时,此选项才有效。扩展名的字符,否则您需要稍微修改awk部分。
答案 1 :(得分:0)
如果仅搜索文件名,则可以使用:
我将命令行分成多行:
$ find /path/to/folder -type f \( \( -name '*.ext1' -or -name '*.ext2' -or -name '*.ext3' \) -and -not \( -name '*excl1*' -or -name 'excl2*' \) \) -print
这可以做到:
/path/to/folder
:您正在搜索的文件夹-type f
:您正在上述文件夹中搜索满足以下条件的文件\(
:打开条件测试\( -name '*.ext1' -or -name '*.ext2' -or -name '*.ext3' \)
:具有列出的三个扩展名之一(带有条件或)的人-and -not \( -name '*excl1*' -or -name 'excl2*' \)
:如果满足上述条件,它将检查(-and
)模式*excl1*
或excl2*
中的一个是否匹配-not
。 \)
关闭主要条件测试
-print
执行操作以打印找到的路径。