101

gzip ファイルから最初の数行を取得する方法は? zcatを試しましたが、エラーがスローされました

zcat CONN.20111109.0057.gz|head
CONN.20111109.0057.gz.Z: A file or directory in the path name does not exist.
4

6 に答える 6

168

zcat(1)compress(1)またはのいずれかで指定できますgzip(1)。あなたのシステムでは、拡張子compress(1)の付いたファイルを探しているようです.Z

gzip -cd代わりにに切り替えるzcatと、コマンドが正常に機能するはずです。

 gzip -cd CONN.20111109.0057.gz | head

説明

   -c --stdout --to-stdout
          Write output on standard output; keep original files unchanged.  If there are several input files, the output consists of a sequence of independently compressed members. To obtain better compression, concatenate all input files before compressing
          them.

   -d --decompress --uncompress
          Decompress.
于 2011-11-16T12:10:30.400 に答える
14

<Mac では、zcatを使用する必要があります。

zcat < CONN.20111109.0057.gz|head

于 2016-08-17T23:18:55.603 に答える
1

を使用する場合zcat、これは最初の 10 行を表示します

zcat your_filename.gz | head

16番目の最初の行が必要だとしましょう

zcat your_filename.gz | head -n 16
于 2021-09-28T15:54:46.477 に答える
0

この awk スニペットを使用すると、最初の数行だけでなく、指定できる範囲も表示できます。また、gzip ファイル内の特定の行を指すエラー メッセージをデバッグするために必要な行番号も追加します。

gunzip -c file.gz | awk -v from=10 -v to=20 'NR>=from { print NR,$0; if (NR>=to) exit 1}'

上記のワンライナーで使用されている awk スニペットを次に示します。awk では、NR は組み込み変数 (これまでに見つかったレコードの数) であり、通常は行番号に相当します。from 変数と to 変数は、-v オプションを介してコマンド ラインから取得されます。

NR>=from {
   print NR,$0; 
   if (NR>=to) 
     exit 1
}
于 2020-09-30T04:49:46.373 に答える