Unix korn shell上的选择性tar

时间:2014-12-12 12:55:15

标签: unix ksh

我需要帮助为Unix编写一个Korn Shell脚本,具有以下功能。

首先,请假设您有一个包含以下内容的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

请注意:

a)文件1和文件2以ALPHA开头并以0001结尾:我必须创建一个名为ALPHA_0001.tar的tar文件,其中包含这两个文件;

b)文件3和文件4以BETA开头,以0002结束:我必须创建一个名为BETA_0002.tar的tar文件,其中包含这两个文件;

c)文件5以DELTA开头并以0001结尾:我必须创建一个名为DELTA_0001.tar的tar文件,其中只包含此文件;

d)文件6以DELTA开头,以0002结束:我必须创建一个名为DELTA_0002.tar的tar文件,该文件仅包含此文件。

我怎么能在Unix Korn Shell中实现这个目标?

非常感谢您考虑我的要求。

1 个答案:

答案 0 :(得分: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