如何从命令行以纯文本 SQL 形式查看 sql.gz 文件?
我想.sql.gz
从服务器上的命令行读取存储在文件中的 SQL 语句。我已经尝试过tar -xzvf
,但是得到tar: This does not look like a tar archive
。cat
返回垃圾,因为它被压缩了。
答案1
gunzip -c <filename> | less
或者
zcat <filename> | less
答案2
zcat file.sql.gz
会将文件输出到 stdout,然后可以与grep
ormore
或less
等组合。
答案3
很多时候,也许在这种情况下,just plainless
就可以做正确的事情。这使用了所谓的less
预处理器。所以,做
less file.sql.gz
这实际上不会将文件以纯文本形式写入文件系统;它只是为了您的观看乐趣,但大多数时候这已经足够了。我个人认为less
预处理器非常有用。它使我免于记住一堆命令。至少在 Debian 上,较少的预处理器是/usr/bin/lesspipe
.这是一个 shell 脚本。通过检查环境变量 LESSOPEN 的值可以找到该位置。例如
echo $LESSOPEN
|/usr/bin/lesspipe %s
该脚本仅针对 gzip 压缩文本文件的相关部分是:
# Note that this is out of alpha order so that we don't catch
# the gzipped tar files.
*.gz|*.z|*.dz)
gzip -dc "$1" ;;
这是less
Debian wheezy 上的版本 444-4。