কমান্ড লাইনে অতিরিক্ত তথ্য ছাড়াই কীভাবে একটি জিপগুলিতে ফাইলগুলি তালিকাভুক্ত করা যায়


37

আমার ব্যাশ কমান্ড লাইনে, যখন আমি ব্যবহার unzip -l test.zipকরি আমি এই জাতীয় আউটপুট পাই:

Archive:  test.zip
  Length      Date    Time    Name
---------  ---------- -----   ----
   810000  05-07-2014 15:09   file1.txt
   810000  05-07-2014 15:09   file2.txt
   810000  05-07-2014 15:09   file3.txt
---------                     -------
  2430000                     3 files

তবে আমি কেবল ফাইলের বিবরণ যুক্ত লাইন দ্বারা আগ্রহী।

আমি এইভাবে গ্রেপ ব্যবহার করে ফিল্টারিং করার চেষ্টা করেছি:

unzip -l test.zip | grep -v Length | grep -v "\-\-\-\-" | g -v Archive | grep -v " files"

তবে এটি দীর্ঘ এবং ত্রুটির প্রবণতা রয়েছে (উদাহরণস্বরূপ এই তালিকার কোনও ফাইলের নাম সংরক্ষণাগার বাদ দেওয়া হবে)

আনজিপ-এল (আমি আনজিপ ম্যান পৃষ্ঠাটি পরীক্ষা করে দেখেছি এবং কোন সন্ধান পাইনি) এর সাথে অন্য কোনও বিকল্প রয়েছে বা এর জন্য অন্য কোনও সরঞ্জাম আছে?

আমার পক্ষে আর্কাইভটি সত্যিই আনজিপ না করা কেবল ফাইলগুলির ভিতরে রয়েছে তা দেখার জন্য গুরুত্বপূর্ণ।


গৃহীত উত্তর এর চেয়ে অনেক ভাল; তবে আমি মন্তব্য করতে চাই যে grepএকাধিকের সাথে যেকোন কিছু অজক স্ক্রিপ্টে রিফেক্টর করা যায়, সাধারণত অনেক উন্নত নির্ভুলতার সাথে। awk 'NR >3 { if (/^ *---/) exit 0; print }'পাদচরণের পাশাপাশি প্রথম তিনটি লাইন ছাঁটাই করে এবং সহজেই কেবল ফাইল নাম বের করতে পারে (ইঙ্গিত print substr($0, 29):)।
ট্রিপলি

হ্যাঁ, আমি পুরোপুরি একমত, এই কারণেই আমি সেই নির্দিষ্ট প্রশ্নটি জিজ্ঞাসা করছি: আরও ভাল এবং কার্যকর সমাধান করার জন্য।
рüффп

উত্তর:


55
zipinfo -1 file.zip

বা:

unzip -Z1 file.zip

কেবল ফাইলগুলি তালিকাবদ্ধ করবে।

আপনি যদি এখনও প্রতিটি ফাইলের নামের জন্য অতিরিক্ত তথ্য চান তবে আপনি এটি করতে পারেন:

unzip -Zl file.zip | sed '1,2d;$d'

বা:

unzip -l file.zip | sed '1,3d;$d' | sed '$d'

অথবা (জিএনইউ ধরে নিচ্ছেন head):

unzip -l file.zip | tail -n +4 | head -n -2

ধন্যবাদ শক্তিশালী সেড ... ঠিক আমি যা চেয়েছিলাম; এছাড়াও জিপিনফো সরঞ্জামটি আকর্ষণীয়, আমি এটি জানতাম না।
5

ডিরেক্টরি উপেক্ষা করার উপায় আছে? unzip -Z1 zipfile.zipডিরেক্টরিটি / এবং ডিরেক্টরিটি / file.extension: আউটপুট পাবেন (। নোট: সঙ্গে ডিরেক্টরির নাম, সম্ভবত তাই একটি যোগ | grep .করে কাজ নয়)
ম্যাট
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.