我需要帮助为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中实现这个目标?
非常感谢您考虑我的要求。
答案 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