আমার ব্যাশ কমান্ড লাইনে, যখন আমি ব্যবহার 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)
:)।