如何从命令行以纯文本 SQL 形式查看 sql.gz 文件?

如何从命令行以纯文本 SQL 形式查看 sql.gz 文件?

如何从命令行以纯文本 SQL 形式查看 sql.gz 文件?

我想.sql.gz从服务器上的命令行读取存储在文件中的 SQL 语句。我已经尝试过tar -xzvf,但是得到tar: This does not look like a tar archivecat返回垃圾,因为它被压缩了。

答案1

gunzip -c <filename> | less

或者

zcat <filename> | less

答案2

zcat file.sql.gz会将文件输出到 stdout,然后可以与grepormoreless等组合。

答案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" ;;

这是lessDebian wheezy 上的版本 444-4。

相关内容