Bagaimana cara mendapatkan beberapa baris pertama dari file gziped? Saya mencoba zcat, tetapi itu membuat kesalahan
zcat CONN.20111109.0057.gz|head
CONN.20111109.0057.gz.Z: A file or directory in the path name does not exist.
Bagaimana cara mendapatkan beberapa baris pertama dari file gziped? Saya mencoba zcat, tetapi itu membuat kesalahan
zcat CONN.20111109.0057.gz|head
CONN.20111109.0057.gz.Z: A file or directory in the path name does not exist.
Jawaban:
zcat(1)dapat dipasok oleh salah satu compress(1)atau oleh gzip(1). Di sistem Anda, tampaknya compress(1)- sedang mencari file dengan ekstensi.Z ekstensi.
Beralih ke gzip -cdtempat zcatdan perintah Anda akan berfungsi dengan baik:
gzip -cd CONN.20111109.0057.gz | head
Penjelasan
-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.
zless file.gz | head. zmoremasih meninggalkanmu dengan pipa yang rusak. zlesstampaknya cara untuk pergi.
Pada beberapa sistem (mis., Mac), Anda perlu menggunakan gzcat.
Di Mac, Anda perlu menggunakan <with zcat:
zcat < CONN.20111109.0057.gz|head
Jika rentang garis yang berkelanjutan perlu, salah satu opsinya mungkin:
gunzip -c file.gz | sed -n '5,10p;11q' > subFile
di mana garis antara baris ke-5 dan ke-10 (keduanya termasuk) file.gzdiekstraksi menjadi baris baru subFile. Untuk sedopsinya, lihat manual .
Jika setiap, katakanlah, baris ke-5 diperlukan:
gunzip -c file.gz | sed -n '1~5p;6q' > subFile
yang mengekstrak baris pertama dan melompati 4 baris dan mengambil baris ke-5 dan seterusnya.
Cuplikan awk ini akan memungkinkan Anda menampilkan tidak hanya beberapa baris pertama - tetapi rentang yang dapat Anda tentukan. Ini juga akan menambahkan nomor baris yang saya perlukan untuk men-debug pesan kesalahan yang menunjuk ke jalur tertentu ke bawah dalam file gzip.
gunzip -c file.gz | awk -v from=10 -v to=20 'NR>=from { print NR,$0; if (NR>=to) exit 1}'
Berikut adalah potongan awk yang digunakan dalam satu baris di atas. Dalam awk NR adalah variabel built-in (Jumlah record yang ditemukan sejauh ini) yang biasanya setara dengan nomor baris. variabel dari dan ke diambil dari baris perintah melalui opsi -v.
NR>=from {
print NR,$0;
if (NR>=to)
exit 1
}
tar -xzOf some_huge_file.tar.gz | head