r.b*_*bot 5 command-line regex mv
如何将具有特定模式的文件夹中的文件移动到目标文件夹?
当用分隔符“-”分隔时,我想移动第 4 列中名称在 [00-09] 范围内的文件。
ls | cut -d "-" -f 4 | grep ^[00-09]
Run Code Online (Sandbox Code Playgroud)
显示这些文件:
UNCID_376947.TCGA-DD-A118-01A-11R-A131-07.110525_UNC12-SN629_0087_BC03HWABXX.7.trimmed.txt
UNCID_377115.TCGA-CC-5263-01A-01R-A131-07.110525_UNC12-SN629_0087_BC03HWABXX.5.trimmed.txt
UNCID_377252.TCGA-DD-A114-11A-12R-A131-07.110525_UNC12-SN629_0087_BC03HWABXX.6.trimmed.txt
Run Code Online (Sandbox Code Playgroud)
fed*_*qui 13
使用全局表达式:
mv your_dir/*?-*?-*?-0[0-9]* new_dir/
Run Code Online (Sandbox Code Playgroud)
要测试它,您可以首先执行 als your_dir/*?-*?-*?-0[0-9]*以确保它与您想要的文件匹配。
表达式的*?-*?-*?-0[0-9]*意思是:字符+-三遍然后0和任意字符。
$ ls
another_dir/ aa-03A-b aa-b-03A-b aa-b-c-03A-b a-b-c-03A-b a-b-c-23A-b
$ mv *?-*?-*?-0[0-9]* another_dir/
$ ls another_dir/
aa-b-c-03A-b a-b-c-03A-b
Run Code Online (Sandbox Code Playgroud)