这是在 Ubuntu 12.04 上。我有一个基于 webkit 的自定义应用程序,其中“浏览器”保存了大量缓存文件。在对问题进行分类时,我必须检查缓存。缓存目录包含许多不同类型的文件,没有任何文件扩展名。其中一些文件是压缩的,有些则不是。最终目标是检查文本文件(如 javascript 和 css)的内容。
我正在尝试编写一个 shell 脚本,可以“感知”该文件是压缩文件并展开该文件。特别面临两个问题
- 检查“file”命令的输出。这是我使用 grep 命令检查状态得到的。不确定这是否是最好的方法。
- gunzip 不喜欢没有扩展名的文件。如何告诉 gzip 展开没有扩展名的文件。尝试了“-S”标志,但没有用,我被困在这里。
如果这(使用 grep 和 file 命令)不是最好的方法,也请建议替代方法。
在以下示例中,shell 脚本应自动扩展 1077572923。扩展文件可以使用任何扩展名或无扩展名。
ls -l 命令的输出
-rw------- 1 <user> <user> 213 Apr 28 14:19 1011858703
-rw------- 1 <user> <user> 364 Apr 28 14:19 1040171657
-rw------- 1 <user> <user> 66K Apr 28 14:19 1077572923
文件 * 显示的输出如下
1011858703: GIF image data, version 89a, 13 x 13
1040171657: GIF image data, version 89a, 22 x 19
1077572923: gzip compressed data, from FAT filesystem (MS-DOS, OS/2, NT)
答案1
zgrep -e "the regexp you search" *
可能是答案。如果需要,zgrep 会为您解压缩,保持文件不变并执行 grep。