2012-08-24 31 views
0

我有一段时间都在.gz文件中的日志文件。是否有一个命令我可以用它们一次性将它们全部提取到它们的当前目录中?我尝试了解压缩* .gz,但不起作用。还有其他建议吗?如何在命令行中提取多个.gz日志文件

+0

请编辑您的问题,包括确切的错误信息或其他确切的证据“但不起作用”。在许多/大多数Linux上,您需要使用'gunzip',而不是'unzip'。 'gunzip * .gz'应该可以工作。祝你好运。 – shellter

回答

0

shell sciprt?

#!/bin/ksh 

TEMPFILE=tempksh_$$.tmp           #create a file name 
> $TEMPFILE              #create a file w/ name 

ls -l | grep '.*\.gz$' \           #make dynamic shell script 
     | awk '{printf "unzip %s;\n", $9;}' \      #with unzip cmd for each item 
     >> $TEMPFILE            #and write to TEMPFILE 


chmod 755 $TEMPFILE            #give run permissions 
./$TEMPFILE              #and run it 
rm -f $TEMPFILE             #clean up 

未经测试,但我认为你的想法....

其实一点小提琴演奏,并得到更简单...

set -A ARR *.gz; 
for i in ${characters[@]}; do `unzip $i`; done; 
unset ARR; 
+0

非常感谢gb,但那是我的头,我实际上找到了另一种方式来做到这一点。有一个gunzip命令,似乎有效。我只是这样做了:gunzip * \。gz – Craig

+0

很好地冷却任何作品。但不要让脚本吓唬你......如果你要做很多cli工作,学习它会让你的经验变得更好。 – gbtimmon

相关问题