コマンドラインでsql.gzファイルをプレーンテキストSQLとして表示するにはどうすればよいですか?

コマンドラインでsql.gzファイルをプレーンテキストSQLとして表示するにはどうすればよいですか?

コマンドラインでsql.gzファイルをプレーンテキストSQLとして表示するにはどうすればよいですか?

.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に出力してからgrepormoreまたはless等と組み合わせることができます。

答え3

何度も、おそらくこの場合、単に普通のものがless正しいことをするでしょう。これはlessプリプロセッサと呼ばれるものを使用します。だから

less file.sql.gz

これは実際にはファイルをプレーンテキストでファイルシステムに記録するのではなく、見るのが楽しいことですが、ほとんどの場合それで十分です。私は個人的にless前処理が非常に便利だと思います。複数のコマンドを覚える必要がなくなりました。少なくともDebianでは前処理が少なくなります/usr/bin/lesspipe。これはシェルスクリプトです。この場所は、環境変数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です。

関連情報