গিজিপযুক্ত ফাইল থেকে প্রথম কয়েকটি লাইন কীভাবে পাবেন? আমি zcat চেষ্টা করেছি, তবে এটি একটি ত্রুটি ছুঁড়েছে
zcat CONN.20111109.0057.gz|head
CONN.20111109.0057.gz.Z: A file or directory in the path name does not exist.
গিজিপযুক্ত ফাইল থেকে প্রথম কয়েকটি লাইন কীভাবে পাবেন? আমি zcat চেষ্টা করেছি, তবে এটি একটি ত্রুটি ছুঁড়েছে
zcat CONN.20111109.0057.gz|head
CONN.20111109.0057.gz.Z: A file or directory in the path name does not exist.
উত্তর:
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.
zless file.gz | head
। zmore
এখনও ভাঙা পাইপ দিয়ে তোমাকে ছেড়ে যায়। zless
যাবার উপায় বলে মনে হচ্ছে
কিছু সিস্টেমে (যেমন, ম্যাক) আপনার ব্যবহার করা দরকার gzcat
।
একটি ম্যাকের জন্য আপনাকে <
জ্যাক্যাট সহ ব্যবহার করতে হবে :
zcat < CONN.20111109.0057.gz|head
যদি অবিচ্ছিন্ন রেখাগুলির প্রয়োজন হয় তবে একটি বিকল্প হতে পারে:
gunzip -c file.gz | sed -n '5,10p;11q' > subFile
যেখানে 5 ম এবং 10 তম লাইনের (উভয় অন্তর্ভুক্ত) রেখাগুলি file.gz
একটি নতুনতে সরানো হয়েছে subFile
। জন্য sed
বিকল্প, পড়ুন ম্যানুয়াল ।
যদি প্রতিটি, বলুন, 5 তম লাইন প্রয়োজন:
gunzip -c file.gz | sed -n '1~5p;6q' > subFile
যা 1 ম লাইনটি বের করে এবং 4 টি লাইনের উপরে ঝাঁপ দেয় এবং 5 তম লাইনটি তুলে ধরে।
এই awk স্নিপেট আপনাকে প্রথম কয়েকটি লাইনই প্রদর্শন করতে দেয় না - তবে আপনি নির্দিষ্ট করতে পারেন এমন একটি ব্যাপ্তি। এটি লাইন নম্বরগুলি যুক্ত করবে যা একটি গিজিপযুক্ত ফাইলের নিচে নির্দিষ্ট লাইন পথে নির্দেশ করে একটি ত্রুটি বার্তা ডিবাগ করার জন্য আমার প্রয়োজনীয় ছিল needed
gunzip -c file.gz | awk -v from=10 -v to=20 'NR>=from { print NR,$0; if (NR>=to) exit 1}'
উপরের এক লাইনারে ব্যবহৃত awk স্নিপেট এখানে। অ্যাডাব্লিক ইন এনআর হ'ল একটি বিল্ট-ইন ভেরিয়েবল (এখনও অবধি পাওয়া রেকর্ডের সংখ্যা) যা সাধারণত একটি লাইন সংখ্যার সমতুল্য। কমান্ড লাইন থেকে -v বিকল্পগুলির মাধ্যমে এবং পরিবর্তনশীল থেকে নেওয়া হয়।
NR>=from {
print NR,$0;
if (NR>=to)
exit 1
}
tar -xzOf some_huge_file.tar.gz | head