Command line 如何在命令行中提取多个.gz日志文件
我有很多年的日志文件,都在.gz文件中。是否有一个命令可以用来将这些文件一次提取到它们当前的目录中?我尝试解压*.gz,但没有成功。还有其他建议吗?shell sciprtCommand line 如何在命令行中提取多个.gz日志文件,command-line,compression,Command Line,Compression,我有很多年的日志文件,都在.gz文件中。是否有一个命令可以用来将这些文件一次提取到它们当前的目录中?我尝试解压*.gz,但没有成功。还有其他建议吗?shell sciprt #!/bin/ksh TEMPFILE=tempksh_$$.tmp #create a file name > $TEMPFILE
#!/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;
请编辑您的问题,以包含确切的错误消息或其他“但不起作用”的确切证据。在许多/大多数Linux上,您需要使用
gunzip
,而不是unzip
gunzip*.gz
应该可以工作。祝你好运。谢谢。但这太让我费解了,我实际上找到了另一种方法。有一个gunzip命令,似乎已经奏效了。我刚做了:gunzip*\.gz好的,一切都好。但是不要让脚本吓到你。。。如果你要做大量的cli工作,学习它会让你的体验更好。