我在 Linux 目录中有一些文件。下面列出了部分文件
-rw-rw-r--. 1 roots roots 0 Dec 23 02:17 zzz_123_00000_A_1.csv
-rw-rw-r--. 1 roots roots 0 Dec 23 02:18 zzz_121_00000_A_2.csv
-rw-rw-r--. 1 roots roots 0 Dec 23 02:18 zzz_124_00000_A_3.csv
drwxrwxr-x. 2 roots roots 6 Dec 23 02:18 zzz
-rw-rw-r--. 1 roots roots 0 Dec 23 02:54 yyy_123_343434_A_1.csv
-rw-rw-r--. 1 roots roots 0 Dec 23 02:55 yyy_123_343434_A_1.xml
-rw-rw-r--. 1 roots roots 0 Dec 23 02:55 yyy_1254_343434_A_1.csv
-rw-rw-r--. 1 roots roots 0 Dec 23 02:55 yyy_1254_343434_A_1.txt
drwxrwxr-x. 2 roots roots 6 Dec 23 02:56 yyy
现在我必须根据起始文件名模式从上面的列表中压缩 .csv 文件。Zip 文件名应该是匹配的模式(在上面的 zzz_timestamp.zip 和 yyy_timestamp.zip 中
在我的目录中,其他文件格式也具有相同的名称。而且我的目录可能还有子目录。我不应该考虑 zip 过程中的其他文件和子目录。
一旦完成 zip,我必须将这些 csv 文件移动到存档目录中。我必须编写 unix 脚本。
预期输出:
zzz_timestamp.zip 应该有 zzz_123_00000_A_1.csv、zzz_121_00000_A_2.csv 和 zzz_124_00000_A_3.csv
yyy_timestamp.zip 应该有 yyy_123_343434_A_1.csv、yyy_1254_343434_A_1.csv
请告诉我如何完成这项任务。
答案1
您知道可以给 zip 指定文件名吗?
zip zzz_timestamp.zip zzz_???_000000_1_?.csv
zip yyy_timestamp.zip yyy_*.csv
您可以事先尝试使用
echo yyy_*.csv
看看 shell expand 是否满足您的需要。