我想编辑 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.txt
,videoDir/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 in
find -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
同时打开它们
(假设文件名不包含冒号)