আপনি কীভাবে কোনও ফাইলটিতে স্ট্রিং অনুসন্ধান করবেন যা ঘুরেফিরে একটি সংরক্ষণাগারটিতে রয়েছে?


5

আমি 'গ্রেপ' এবং 'ফাইন্ড' কমান্ডের পাইপলাইন দিয়ে একটি নির্দিষ্ট স্ট্রিংয়ের জন্য বেশ কয়েকটি ফাইল অনুসন্ধান করতে পারি।

এখন, আমার কাছে প্রায় 10 টি জিপ ফাইল রয়েছে যার প্রত্যেকটিতে প্রচুর পাঠ্য ফাইল সংরক্ষণাগারভুক্ত হয়েছে। জিপ ফাইলগুলি না বের করেই those সমস্ত জিপ ফাইলে সংরক্ষণাগারভুক্ত সমস্ত পাঠ্য ফাইলগুলিতে স্ট্রিং সন্ধান করার কোনও উপায় আছে কি?

উত্তর:


1
unzip -c \*.zip | grep yourtext

আপনি স্ট্রিং ম্যাচটি ফিনটিউন করতে গ্রেপ কমান্ডের কিছু রেজিেক্সস ব্যবহার করতে পারেন

নীচের মন্তব্যের ভিত্তিতে, zgrepআরও ভাল বিকল্প হবে would


থ্যাঙ্কস রাজ একবারে কেবলমাত্র একটি জিপ ফাইল ব্যবহৃত হয় তবে আপনার সমাধানটি কার্যকর। *। জিপ ব্যবহার করা থাকলে কিছুই উপস্থিত হয় না তবে কেবল একটি সতর্কতা: ফাইলের সাথে মিল নেই appears
সংজ্ঞায়িত

ম্যানুয়াল পৃষ্ঠা অনুযায়ী আপনাকে ব্যাকস্ল্যাশ ব্যবহার করতে হবে। এটি কেবল আপনার সুবিধার জন্য প্রিন্ট করছি - এটি আনজিপ -c <ব্যাকস্ল্যাশ> * .জিপ হওয়া উচিত, কেবল * .zip নয়।
রাজেশ কৃষ্ণমূর্তি

অহান..ওকে এটি কাজ করেছে তবে এখনও একটি সমস্যা আছে। কোন ফাইলটিতে একটি নির্দিষ্ট স্ট্রিং রয়েছে তা অনুসন্ধান করার জন্য আমি এই সমস্ত করছি। আপনি যে কমান্ডটি উল্লেখ করেছেন তাতে ফাইলটির নাম মুদ্রিত হবে না যেখানে স্ট্রিংটি পাওয়া গেছে।
সংজ্ঞায়িত

আহ .. তারপরে আপনি zgrep - zgrep <options> <Pattern> * .zip
রাজেশ কৃষ্ণমূর্তি

2

আপনি জিপগ্রিপ কমান্ডটি ব্যবহার করতে পারেন যা আনজিপ প্যাকেজের সাথে অন্তর্ভুক্ত রয়েছে। উদাহরণ স্বরূপ:

for z in *.zip ; do zipgrep PATTERN $z |sed "s/^/$z: /" ; done

এই কমান্ডটি আপনাকে সংরক্ষণাগারের অভ্যন্তরে ম্যাচের ফাইলের নামও দেয়।


1

এভিএফএস বা ফিউজ-জিপ ব্যবহার করে সংরক্ষণাগারগুলি ডিরেক্টরি হিসাবে মাউন্ট করুন । দুটিই FUSE ফাইল সিস্টেম।

AVFS মধ্যে ফাইলসিস্টেম একটি দৃশ্য উপলব্ধ ~/.avfsযেখানে প্রত্যেক আর্কাইভ ফাইল একই নামের প্লাস একটি সঙ্গে একটি যুক্ত ডিরেক্টরির হয়েছে #শেষে।

mountavfs
grep -r PATTERN ~/.avfs/$PWD/*.zip\#/
…
unmountavfs

ফিউজ-জিপ একটি ডিরেক্টরিতে একটি জিপ মাউন্ট করে।

for z in *.zip; do mkdir "$z.d" && fuse-zip "$z" "$z.d"; done
grep -r PATTERN *.zip.z/
…
fusermount -u *.zip.d
rmdir *.zip.d
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.