আমি Opensuse 10.3 ব্যবহার করছি এবং একটি ডিরেক্টরিতে পিডিএফ ফাইলের বৃহত সংখ্যায় বাক্যাংশ অনুসন্ধান করতে কমান্ড লাইন সরঞ্জামগুলি জানতে চাই। উইন্ডোজ এক্সপিতে এক্সপ্লোরার অনুসন্ধান এটিকে অনুমতি দেয় তবে খুব ধীর। এখানে গ্রেপ টিপস আছে?
আমি Opensuse 10.3 ব্যবহার করছি এবং একটি ডিরেক্টরিতে পিডিএফ ফাইলের বৃহত সংখ্যায় বাক্যাংশ অনুসন্ধান করতে কমান্ড লাইন সরঞ্জামগুলি জানতে চাই। উইন্ডোজ এক্সপিতে এক্সপ্লোরার অনুসন্ধান এটিকে অনুমতি দেয় তবে খুব ধীর। এখানে গ্রেপ টিপস আছে?
উত্তর:
SEARCH_DIR = "/ কিছু / Dir / যেখানে / আপনি / চান / থেকে / অনুসন্ধান /"; SEARCH_STRING'- এর = "যাই হোক না কেন-আপনি-হয়-অনুসন্ধানের";
# পিডিএফ থেকে পাঠ্য আহরণ করা pdftotext "file.pdf" "file.txt" # গ্রেপের সাথে সংযুক্ত হচ্ছে pdftotext "file.pdf" / dev / stdout | grep -H --label = "file.pdf" - "$ SEARCH_STRING" # যদি আপনি গ্রেড পিডিএফ ফাইলের সাথে কেবল ফাইলের তালিকা প্রদর্শন করতে চান তবে ম্যাচগুলির সাথে - ফাইলগুলি যুক্ত করুন pdftotext "file.pdf" / dev / stdout | grep -H --label = "file.pdf" - ফাইলের সাথে ম্যাচ - "$ SEARCH_STRING" # পিডিএফ থেকে অনুসন্ধানের জন্য সম্ভাব্য তালিকা সন্ধান করুন "$ SEARCH_DIR" টাইপ এফ-নাম '* .pdf'> পিডিএফ-তালিকা-এর তালিকা
প্রসেসিংয়ের জন্য বাশকে প্রেরণ করা হয়েছে # ড্যাক্ট টেপ হিসাবে বিশ্রীভাবে যোগদান করা সমস্ত কিছুই # ডাবল উক্তিটি এক্স 22 এর মধ্যে থাকা হিসাবে পালানো হয়েছে। "$ SEARCH_DIR" -প্রকারের f -name '* .pdf' | awk -v SEARCH_STRING = "$ SEARCH_STRING" 'find সন্ধান করুন { "pdftotext \ x22" $ 0 "\ x22 / dev / stdout | গ্রেপ-এইচ --label = \ x22" $ 0 "\ x22 - \ x22" সার্চ_স্ট্রিং "\ x22" } '| বাশ
# আউট ব্যাশ আপনার প্রয়োজন মেলে আরও প্রক্রিয়া "$ SEARCH_DIR" -প্রকারের f -name '* .pdf' | awk -v SEARCH_STRING = "$ SEARCH_STRING" 'সন্ধান করুন { EXEC = "pdftotext \ x22" $ 0 "\ x22 / dev / stdout | গ্রেপ-এইচ --label = \ x22" $ 0 "\ x22 - \ x22" সার্চ_স্ট্রিং "\ x22"; (EXEC | getline ret) while "ফাইলের জন্য [" $ 0 "] মুদ্রণ করুন আমাদের [" ret "]" মিলছে; # তোমার যা ইচ্ছা করো. }; CLOSE (পাগলের সংখ্যা বাড়ছে); } '
লিনাক্স এবং উইন্ডোজ উভয়েরই অধীনে আপনি অ্যাক্রোব্যাট রিডার ব্যবহার করতে পারেন, যার একাধিক ফাইল অনুসন্ধান করার জন্য একটি আদেশ রয়েছে।
লিনাক্সের অধীনে, রিকোল রয়েছে যা প্রথমবার এটি চালানোর সময় আপনার পিডিএফ ফাইলগুলির (এবং আরও) একটি সূচক তৈরি করবে। সূচকটি তৈরি হওয়ার পরে শব্দ অনুসন্ধানগুলি খুব দ্রুত হওয়া উচিত; বাক্যাংশ অনুসন্ধানগুলি যুক্তিসঙ্গত হওয়া উচিত। pdftotext
আপনি পুনরায় কল শুরু করার আগে কমান্ডটি ইনস্টল করা আছে তা নিশ্চিত করুন ; ডেবিয়ান এবং উবুন্টু এর অধীনে, এটি poppler-utils
প্যাকেজে রয়েছে, আমি সুস সম্পর্কে জানি না।
অথবা আপনি সরাসরি ফাইলগুলিকে পাঠ্যে রূপান্তর করতে পারেন এবং নীচের কমান্ডগুলির সাহায্যে পাঠ্য ফাইলগুলিতে গ্রেপ ব্যবহার করতে পারেন।
Find -name '* .pdf' -exec pdftotext {} \; grep -r - '* .txt' -l -F "অনুসন্ধানের সঠিক বাক্য" grep -r - '* .txt' -l -E "অনুসন্ধানের জন্য নিয়মিত প্রকাশ"
pdftotext
সেগুলির একটি পদক্ষেপ জড়িত (কোন সরঞ্জাম যেমন রিকোল স্বয়ংক্রিয়ভাবে করবে) involve
Adobe Reader- কে এক্স পেশা আছে এবং এটি কাজ করে না শুধুমাত্র একটি ফাইল ভিতরে একটি সম্পূর্ণ ডিরেক্টরি ও সাব অধীনে অনুসন্ধানের অনুমতি, কিন্তু এটা একটা কমান্ড লাইন প্রোগ্রাম নয়।
recoll
ডেবিয়ানে হ্যান্ডলি ইনস্টল করা হয়েছে, এখন এটি আমার উইন্ডোজ-ভিত্তিক কর্মীদের জন্য ব্যবহারযোগ্য করে তোলার চেষ্টা করছে।
আপনার বাড়ির ডিরেক্টরিতে পিডিএফ ফাইল এক্সটেনশন রয়েছে এমন সমস্ত ফাইলকে পুনরাবৃত্তভাবে তালিকাভুক্ত করতে [iI]n Haskell
এবং উদাহরণস্বরূপ রেজেক্স ' ' এর সাথে মেলে এমন একটি লাইন রয়েছে , আপনি ইস্যু করতে পারেন:
find ~/ -regextype posix-extended -regex '.*\.pdf' -execdir sh -c 'pdftotext "$0" - | grep -El --label="$PWD${0#?}" "$1"' {} '[iI]n Haskell' \;
মন্তব্য:
-exec
বা xargs
কারণ, নিরাপত্তার কারণে আমি মনে করি এটা ভাল অভ্যাস এমনটি অভ্যাস ঢোকা। পরিবর্তন করা হচ্ছে ' -execdir
' থেকে ' -exec
' এবং ' $PWD${0#?}
' থেকে ' $0
' এই দৃষ্টান্ত একই ফলাফল অর্জন করা উচিত নয়।./
') ডিফল্ট নির্গত হয় । এই উদাহরণে, এর সাথে মেলে পাথগুলি সমস্ত পরম (যেমন ' /
' দিয়ে শুরু হয় ) কারণ ' ~/
' বর্তমান ব্যবহারকারীর হোম ডিরেক্টরিটির পরম পথে প্রসারিত এবং এটিই একমাত্র পথের যুক্তি।$0
' এবং ' $1
' হ'ল স্থিতিগত প্যারামিটারগুলি এমনভাবে ব্যবহৃত হয় যাতে আর্গুমেন্টগুলিকে সঠিকভাবে উদ্ধৃত করা যায়। এটি যদি সঠিকভাবে না করা হয় তবে কমান্ডটি স্বেচ্ছাসেবী ফাইল নামগুলির পক্ষে ঝুঁকিপূর্ণ।${0#?}
' এর প্রথম চরিত্রটি $0
অর্থাৎ ' ' কে আলাদা করে ফেলে .
।ফাইলের নাম অনুসারে প্রতিটি মিলে যাওয়া লাইন মুদ্রণ করতে:
find ~/ -regextype posix-extended -regex '.*\.pdf' -execdir bash -c 'pdftotext "$0" - | grep -EH --label="${0:2}" "$1"' {} '[iI]n Haskell' \;
এই রূপটি ' -H
' এর পরিবর্তে ' ' ব্যবহার করে -l
এবং ফাইলপথের পরিবর্তে ফাইল নাম সহ লেবেল ব্যবহার করে। ' ${0:2}
' এর প্রথম দুটি অক্ষর $0
, অর্থাত্ ' ./
' এর দুটি পৃথক করে তবে এটি স্পষ্টতই স্বীকৃত নয় sh
।
অবশ্যই, আপনার প্রয়োজনের জন্য টুইট।