2014-12-12 2 views
1

Мне нужна помощь для написания сценария Korn Shell для Unix со следующими функциями.Выборочный tar на оболочке Unix korn

Прежде всего, пожалуйста, что у вас есть каталог Unix со следующим содержанием:

1) ALPHA_PIPPO_PLUTO_0001.xml 
2) ALPHA_PIPPO_TOPOLINO_0001.xml 
3) BETA_MINNIE_OMEGA_0002.xml 
4) BETA_OMICRON_PHI_0002.xml 
5) DELTA_WHY_NOT_0001.xml 
6) DELTA_BECAUSE_WHY_0002.xml 

Обратите внимание, что:

а) Файл 1 и Файл 2 начинаются с ALPHA и заканчиваются 0001: I необходимо создать tar-файл с именем ALPHA_0001.tar, который содержит эти два файла;

b) Файл 3 и файл 4 начинаются с BETA и заканчиваются 0002: мне нужно создать файл tar с именем BETA_0002.tar, который содержит эти два файла;

c) Файл 5 начинается с DELTA и заканчивается 0001: мне нужно создать tar-файл с именем DELTA_0001.tar, который содержит только этот файл;

d) Файл 6 начинается с DELTA и заканчивается 0002: мне нужно создать tar-файл с именем DELTA_0002.tar, который содержит только этот файл.

Как я могу достичь этого в Unix Korn Shell?

Большое спасибо за рассмотрение моей просьбы.

ответ

1

Вы можете архивировать с помощью этой команды:

find . -regex "^.*?_.*_.*?\.xml$" | sed -r "s|(^./[A-Z]*_).*_(.*?\.)xml$|tar -cvf \1\2tar|g" | sed -r "s|^.*\./([A-Z]*)_([0-9]*).tar|& \1*\2*|g" | uniq | source /dev/stdin 
+0

КШ: источник: не найден. find: 0652-017 -regex не является допустимым вариантом. sed: не признанный флаг: r Использование: sed [-n] [-u] Сценарий [Файл ...] sed [-n] [-u] [-e Script] ... [-f Script_file ] ... [Файл ...] sed: не признанный флаг: r Использование: sed [-n] [-u] Сценарий [Файл ...] sed [-n] [-u] [- e Script] ... [-f Script_file] ... [Файл ...] – UltraCommit

+0

Не могли бы вы вставить выходные данные 'find -version' и' sed -version'? – jherran

+0

Использование: найти [-H | -L] Список путей [Expression-list] – UltraCommit

Смежные вопросы