我是shell脚本的新手。我为2个不同的输入文件编写了以下脚本:
#!/bin/sh
last=`ls [JKT-ABC]*.tar | sed s/.tar//g | sort -g | tail -1`
if(($last%1==0))
then
tar -cf `date '+%W%b%d'`.tar [JKT-ABC]*.tar
fi
last=`ls [JKT-DEF]*.tar | sed s/.tar//g | sort -g | tail -1`
if(($last%1==0))
then
tar -cf `date '+%W%b%d'`.tar [JKT-DEF]*.tar
fi
执行此脚本后,输出是一个名为.tar
的{{1}}文件。因此,2个输入xxSep28
文件已成为一个TAR(.tar
)。这不是我想要的。
我的问题是:
xxSep28
文件的全名? (例如:tar
)答案 0 :(得分:1)
您的问题很难理解......您的脚本会创建一个名为
的tar文件<week><month><day>.tar # 38Sep28.tar today for example
然后立即用另一个具有相同名称和不同内容的tar文件覆盖它。
显而易见的事情是使两个tar
命令分别写入不同的文件。所以我建议你将第一个tar
命令更改为:
tar -cf "$(date '+%W%b%d')JKT-ABC.tar" something
和第二个
tar -cf "$(date '+%W%b%d')JKT-DEF.tar" something
还有另一个问题,我仍然不明白,这就是你的意思
[JKT-ABC]*.tar
它表示名称仅包含字母J,K,T到A(!),B或C后跟.tar
的文件,因此它将匹配名为的文件:
JJ.tar
CBACBACBCCCCCCCC.tar
我认为这不是你的意思,特别是因为范围T through to A
不太可能......