我有一个文本文件,其中包含来自硬盘驱动器的文件的完整路径列表。这可以是千行,但这里是我的volume_content.txt
文件示例:
/Volumes/NEW TVC/20200901/CAM_A/VID_A002C001.mov
/Volumes/NEW TVC/20200901/CAM_A/VID_A002C003.mov
/Volumes/NEW TVC/20200901/CAM_A/VID_A003C003.mov
/Volumes/NEW TVC/20200901/CAM_B/CARD01/20200905/TVC.mov
Run Code Online (Sandbox Code Playgroud)
假设我在里面有搜索关键字footages.txt
,但这些关键字应该只指文件名:
A002
TVC
Run Code Online (Sandbox Code Playgroud)
如果我使用
footage=$(cat footages.txt)
cat volume_content.txt | grep "${footage}"
Run Code Online (Sandbox Code Playgroud)
它最终会收集 my 的全部内容volume_content.txt
,因为每一行都有图案TVC
。
我设法提取了正确的行,通过使用grep
两次对其进行排序,使用:
footage=$(cat footages.txt)
cat volume_content.txt | sed 's!.*/!!' | grep "${footage}" > footage_filename.txt
footage_filename=$(cat footage_filename.txt)
cat volume_content.txt | grep "${footage_filename}" > all_footages.txt
Run Code Online (Sandbox Code Playgroud)
这就是结果,这就是我想要的:
/Volumes/NEW TVC/20200901/CAM_A/VID_A002C001.mov
/Volumes/NEW TVC/20200901/CAM_A/VID_A002C003.mov
/Volumes/NEW TVC/20200901/CAM_B/CARD01/20200905/TVC.mov
Run Code Online (Sandbox Code Playgroud)
有没有简单的方法(可能是一个班轮)来实现这一目标?