У меня есть файлы в каталоге 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 ответ1

2

Вы знаете, что можете дать имя файла zip?

zip zzz_timestamp.zip zzz_???_000000_1_?.csv

zip yyy_timestamp.zip yyy_*.csv

вы можете попробовать перед использованием

echo yyy_*.csv

чтобы увидеть, если расширение оболочки соответствует вашим потребностям.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .