আমি কীভাবে একটি ডিরেক্টরি / উপ ডিরেক্টরিতে পিডিএফ ফাইলগুলির বিষয়বস্তু অনুসন্ধান করতে পারি? আমি কিছু কমান্ড লাইন সরঞ্জামের সন্ধান করছি। দেখে মনে হচ্ছে grep
পিডিএফ ফাইলগুলি অনুসন্ধান করতে পারে না।
আমি কীভাবে একটি ডিরেক্টরি / উপ ডিরেক্টরিতে পিডিএফ ফাইলগুলির বিষয়বস্তু অনুসন্ধান করতে পারি? আমি কিছু কমান্ড লাইন সরঞ্জামের সন্ধান করছি। দেখে মনে হচ্ছে grep
পিডিএফ ফাইলগুলি অনুসন্ধান করতে পারে না।
উত্তর:
আপনার বিতরণে একটি ইউটিলিটি সরবরাহ করা উচিত pdftotext
:
find /path -name '*.pdf' -exec sh -c 'pdftotext "{}" - | grep --with-filename --label="{}" --color "your pattern"' \;
"-" পিডিফোটোটেক্সট আউটপুট স্টাডআউটে থাকা দরকার, ফাইলগুলিতে নয়। --with-filename
এবং --label=
অপশন, grep আউটপুট ফাইল নাম করবে। ঐচ্ছিক --color
পতাকা সুন্দর এবং টার্মিন্যালে রং ব্যবহার আউটপুট, grep বলে।
(উবুন্টুতে, pdftotext
প্যাকেজ দ্বারা সরবরাহ করা হয় xpdf-utils
বা poppler-utils
))
আপনি যদি GNU- র এমন বৈশিষ্ট্যগুলি সমর্থন করেন না যা সমর্থন করে না তবে এই পদ্ধতিটি ব্যবহার করে pdftotext
এবং এর grep
থেকেও একটি সুবিধা রয়েছে । দ্রষ্টব্য : pdfgrep-1.3.x প্রসঙ্গের মুদ্রণের জন্য বিকল্পটি সমর্থন করে।pdfgrep
grep
pdfgrep
-C
grep
মুদ্রিত ফাইলের নামগুলি ফিল্টার করায় কোনও কাজ করে না ।
pdfgrep
সমাধানটি দ্রুত এবং সহজ অনুসন্ধানের জন্য ভাল, প্রায়শই আমি কিছু প্রসঙ্গ পেতে চাই, কারণ একটি একক লাইন যথেষ্ট সহায়ক হবে না - সুতরাং আমি এই উত্তরে যুক্ত করেছি: উদাহরণস্বরূপ, আপনি যুক্ত করতে পারেন "আপনার প্যাটার্ন" এর আগে -C5 বিকল্পটি আউটপুটে 5 টি লাইনের প্রসঙ্গ অন্তর্ভুক্ত করার জন্য - পিডিএফগ্রিপ এটি সমর্থন করে না
pdfgrep
অকেজো, এটি হ্যান্ডেল করতে পারে না এমন ফাইলগুলিতে প্রচুর পরিমাণে আবর্জনার প্রতিবেদন করে। অন্যদিকে আপনার সমাধান সাহায্য করেছে। সুতরাং দয়া করে এটি মুছবেন না, 3 বছর পরেও এটি এখনও সহায়ক!
নেই pdfgrep অবলম্বন দিতে ঠিক কি তার নাম প্রস্তাব দেওয়া।
pdfgrep -R 'a pattern to search recursively from path' /some/path
আমি এটি সাধারণ অনুসন্ধানগুলির জন্য ব্যবহার করেছি এবং এটি দুর্দান্ত কাজ করেছে।
(ডেবিয়ান, উবুন্টু এবং ফেডোরায় প্যাকেজ রয়েছে))
সংস্করণ ১.৩.০ পিডিএফগ্রিপ পুনরাবৃত্ত অনুসন্ধানগুলিকে সমর্থন করে। উবুন্টু 12.10 (কোয়ান্টাল) থেকে উবুন্টুতে এই সংস্করণটি উপলব্ধ।
pdfgrep
এখন সেই পুনরাবৃত্তির বিকল্প রয়েছে, এতে -R
রিকোল হল ইউনিক্স / লিনাক্সের জন্য একটি দুর্দান্ত পূর্ণ-পাঠ্য জিইউআই অনুসন্ধান অ্যাপ্লিকেশন যা পিডিএফ সহ কয়েক ডজন বিভিন্ন ফর্ম্যাটকে সমর্থন করে। এমনকি এটি ডকুমেন্ট দর্শকের কাছে কোনও প্রশ্নের সঠিক পৃষ্ঠা নম্বর এবং অনুসন্ধানের শব্দটিও পাস করতে পারে এবং ফলস্বরূপ আপনি তার জিইউআই থেকে ফলাফলটিতে সরাসরি যেতে পারবেন।
রিকোলটি একটি কার্যক্ষম কমান্ড-লাইন ইন্টারফেস এবং একটি ওয়েব-ব্রাউজার ইন্টারফেসের সাথে আসে ।
recoll / xapian
কমান্ড লাইনে (নন-জিইউআই) কীভাবে তা দেখতে পাবেন ? ধন্যবাদ!
recoll
ব্যবহারকারী ম্যানুয়াল কিছু পয়েন্টার থাকতে পারে, কিন্তু অফার বরং একটি প্রযুক্তিগত এবং "প্রসঙ্গ-বহির্ভূত" পড়ার ...
pwd
এক্সট্রা: পিডিএফ 'নিউরো *' - স্ট্যাকওভারফ্লো পিডাব্লুডির চারপাশে ব্যাকটিক্স খেয়েছে।
আমি এই ধ্বংসাত্মক ছোট স্ক্রিপ্ট তৈরি করেছি । এটি দিয়ে মজা করুন।
function pdfsearch()
{
find . -iname '*.pdf' | while read filename
do
#echo -e "\033[34;1m// === PDF Document:\033[33;1m $filename\033[0m"
pdftotext -q -enc ASCII7 "$filename" "$filename."; grep -s -H --color=always -i $1 "$filename."
# remove it! rm -f "$filename."
done
}
$filename.
আপনার এটিতে পাইপ করা উচিত grep
।
আমি @ sjr এর উত্তর পছন্দ করি তবে আমি xargs বনাম-এক্সেক পছন্দ করি। আমি xargs আরও বহুমুখী খুঁজে। উদাহরণস্বরূপ -P এর সাহায্যে আমরা একাধিক সিপিইউগুলির সুবিধা নিতে পারি যখন এটি করার বোধ হয়।
find . -name '*.pdf' | xargs -P 5 -I % pdftotext % - | grep --with-filename --label="{}" --color "pattern"
xargs
'সমান্তরাল-প্রক্রিয়াজাতকরণ ক্ষমতা সম্পর্কে আকর্ষণীয় পয়েন্ট । মনে রাখবেন যে আপনার --label
বিকল্প-যুক্তি হতে হবে আক্ষরিক {}
, কারণ grep
কমান্ড এখন কি আর প্রেক্ষাপটে কার্যকর find
'র exec
।
আমার একই সমস্যা ছিল এবং এইভাবে আমি একটি স্ক্রিপ্ট লিখেছিলাম যা একটি স্ট্রিংয়ের জন্য নির্দিষ্ট ফোল্ডারে সমস্ত পিডিএফ ফাইলগুলি অনুসন্ধান করে এবং পিডিএফ ফাইলগুলি মুদ্রণ করে যা কোয়েরির স্ট্রিংয়ের সাথে মিলে যায়।
সম্ভবত এটি আপনার পক্ষে সহায়ক হবে।
আপনি এটি এখানে ডাউনলোড করতে পারেন
pdfgrep
সমাধান বা এসজিআরের ওয়ান-লাইনারের চেয়ে অনেক ধীর গতিতে পরিণত হয়েছে এবং এটি সিআরটিএল-সি বন্ধ করার পরেও 100% সিপিইউ থ্রেড ব্যবহার করে চলমান প্রক্রিয়াটি আমাকে ছেড়ে দিয়েছে।
আপনি যদি পিডিফোটটেক্সট দিয়ে ফাইলের নাম দেখতে চান তবে নিম্নলিখিত কমান্ডটি ব্যবহার করুন:
find . -name '*.pdf' -exec echo {} \; -exec pdftotext {} - \; | grep "pattern\|pdf"
রিপগ্রিপ-অল নামে আরও একটি ইউটিলিটি রয়েছে , যা রিপগ্রাইপের উপর ভিত্তি করে ।
এটি অফিস ডকুমেন্টস এবং চলচ্চিত্রের মতো কেবল পিডিএফ ডকুমেন্টের চেয়ে বেশি হ্যান্ডেল করতে পারে এবং লেখক দাবি করেছেন যে এটি এর চেয়ে দ্রুত pdfgrep
।
পুনরুক্তিভাবে বর্তমান ডিরেক্টরি অনুসন্ধান করার জন্য কমান্ড সিনট্যাক্স এবং দ্বিতীয়টি কেবল পিডিএফ ফাইলের মধ্যে সীমাবদ্ধ করে:
rga 'pattern' .
rga --type pdf 'pattern' .
একটি ওপেন সোর্স সাধারণ রিসোর্স গ্রেপ টুল ক্রাগ্রেপ রয়েছে যা পিডিএফ ফাইলগুলির মধ্যে অনুসন্ধান করে তবে অন্যান্য সংস্থান যেমন আর্কাইভ, ডাটাবেস টেবিল, চিত্র মেটা-ডেটা, পিওএম ফাইল নির্ভরতা এবং ওয়েব সংস্থানগুলিতে নেস্টেড থাকে - এবং পুনরাবৃত্ত অনুসন্ধান সহ এইগুলির সংমিশ্রণগুলি।
ফাইল ট্যাবের অধীনে সম্পূর্ণ বিবরণটি সরঞ্জামটি কী সমর্থন করে তা প্রায় কভার করে।
আমি ওপেনসোর্স সরঞ্জাম হিসাবে crgrep বিকাশ করেছি।
প্রথমে আপনার সমস্ত পিডিএফ ফাইলগুলি পাঠ্য ফাইলগুলিতে রূপান্তর করুন:
for file in *.pdf;do pdftotext "$file"; done
তারপরে grep
স্বাভাবিক হিসাবে ব্যবহার করুন । এটি বিশেষত ভাল কারণ যখন আপনার একাধিক প্রশ্ন এবং প্রচুর পিডিএফ ফাইল থাকে তখন দ্রুত হয়।
ag
github.com/ggreer/the_silver_searcher এর সাথে একত্রে করা হয় । মাইক্রোসেকেন্ডস দ্বারা সাইকোডেলিক্স জিবিতে পার্স করতে সক্ষম। জীবনের জন্য ফ্ল্যাট ফাইলগুলি
প্রথমে আপনার পিডিএফকে একটি পাঠ্য ফাইলে রূপান্তর করতে এবং তারপরে পাঠ্যের অভ্যন্তরে অনুসন্ধান করতে আপনার কিছু সরঞ্জামের দরকার হয় পিডিএফ 2 টেক্সট need (আপনি সম্ভবত কিছু তথ্য বা চিহ্নগুলি মিস করবেন)।
আপনি যদি কোনও প্রোগ্রামিং ভাষা ব্যবহার করে থাকেন তবে সম্ভবত এই উদ্দেশ্যে পিডিএফ লাইব্রেরি লেখা রয়েছে। যেমন পার্লের জন্য http://search.cpan.org/dist/CAM-PDF/