【问题标题】:Selective tar on Unix korn shellUnix korn shell 上的选择性 tar
【发布时间】:2014-12-12 12:55:15
【问题描述】:

我需要帮助来编写具有以下功能的 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 中实现这一点?

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

【问题讨论】:

    标签: unix ksh


    【解决方案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
    

    【讨论】:

    • ksh:来源:未找到。查找:0652-017 -regex 不是有效选项。 sed:无法识别的标志:r 用法:sed [-n] [-u] 脚本 [File ...] sed [-n] [-u] [-e Script] ... [-f Script_file] .. . [File ...] sed:无法识别标志:r 用法:sed [-n] [-u] Script [File ...] sed [-n] [-u] [-e Script] ... [-f Script_file] ... [文件...]
    • 你能粘贴find --versionsed --version的输出吗?
    • 用法:查找[-H | -L] 路径列表[表达式列表]
    • sed --version sed:无法识别的标志:- 用法:sed [-n] [-u] 脚本 [File ...] sed [-n] [-u] [-e脚本] ... [-f Script_file] ... [文件...] $
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-12-30
    • 2016-01-11
    • 2016-06-05
    • 2017-09-25
    • 1970-01-01
    • 2017-07-16
    • 1970-01-01
    相关资源
    最近更新 更多