查找特定名称模式时列出另一种格式的文件

查找特定名称模式时列出另一种格式的文件

我想编辑 txt 文件,videoA并且videoB仅当 movs 文件名包含命名空间时 -test

例如。

videoDir
    |-videoA
        |- videoA_v001_test.mov
        |- videoA_v001_info.txt
    |-videoB
        |- videoB_v001_test.mov
        |- videoB_v001_info.txt
    |-videoC
        |- videoC_v002.mov
        |- videoC_v002_info.txt

上面,我想编辑videoDir/videoA/videoA_v001_info.txtvideoDir/videoB/videoB_v001_info.txt但没有,videoC_v002_info.txt因为相应的.mov文件名不包含test.

我想出了命令 - find -name "*.mov" | grep -rn "test" | find -name "*.txt", find -name "*.mov" | grep -rn "test" does indeed lists out the 2 files that fulfills the condition (videoA and videoB). I added infind -name "*.txt"` 因为我原以为它会将其过滤到输出结果中的 txt 文件,但是我错了,因为它仍然列出了所有 txt 文件

答案1

zsh

vi ./**/*_test.mov(.s:_test.mov:_info.txt:)

答案2

你需要类似的东西

find . -name "*.mov" -exec grep test {} + | sed -n 's/^\([^:]*\):.*$/\1/p' | xargs -d \\n -n 1 $EDITOR

用于一次打开一个文件

或者

find . -name "*.mov" -exec grep test {} + | sed -n 's/^\([^:]*\):.*$/\1/p' | xargs -d \\n $EDITOR

同时打开它们

(假设文件名不包含冒号)

相关内容