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 -cd
tempat zcat
dan 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
. zmore
masih meninggalkanmu dengan pipa yang rusak. zless
tampaknya 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.gz
diekstraksi menjadi baris baru subFile
. Untuk sed
opsinya, 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