在 Linux 命令行上将文件移动到匹配的文件夹

在 Linux 命令行上将文件移动到匹配的文件夹

我想将文件复制或移动到匹配的文件夹中。这些是我的文件名:

1-filename-aa.txt
2-filename-aa.txt
3-filename-aa.txt
1-filename-bb.txt
2-filename-bb.txt
3-filename-bb.txt

这些是我的文件夹名称:

aa_fa
bb_fb

我尝试使用“cp”命令的静态示例,但我有 40 个这样的文件夹:

cp *aa.* aa_*/
cp *bb.* bb_*/

我需要一个循环也许一行代码来将这些文件复制或移动到匹配的文件夹。

答案1

尝试一下这个单行代码:

for filename in *.txt; do cp $filename $(echo $filename | grep -Po '..(?=\.txt)'); done

相关内容