লিনাক্সে একটি পাঠ্য প্যাটার্ন অনুসন্ধান করুন


20

আমি একজন লিনাক্স নবাগত। আমার / হোম / ইউজার 1 / (সাবফোল্ডার সহ) এর অধীনে আসা সমস্ত *। জাভা ফাইলগুলিতে আমাকে স্ট্রিং "টেস্টস্ট্রিং" অনুসন্ধান করতে হবে। আমি এটি শেল কমান্ডের মাধ্যমে লিনাক্সে কীভাবে করতে পারি।


কমান্ড-লাইন থেকে সাব-ডিরেক্টরিতে রেজেক্স অনুসন্ধানের ফাইল সম্পর্কিত অনেকগুলি প্রশ্ন রয়েছে
রোবটহুমানস

একটি দ্রুত অনুসন্ধান এই প্রশ্নটির উত্থাপন করেছে: superuser.com/questions/208271/… আপনি যা খুঁজছেন ঠিক তা নয়, তবে
এক্সিকিউট সিপির

আমি ফাইন্ড / হোম / ইউজার 1-নাম *। জাভা দিয়ে এক্সটেনশন থাকা ফাইলটি তালিকাভুক্ত করতে পারি যে তাতে গ্রেপ কীভাবে ব্যবহার করব?
darthvader

উত্তর:


23

সবচেয়ে সহজ উপায় হ'ল জিএনইউ গ্রেপের বৈশিষ্ট্যগুলি ব্যবহার করা:

grep -r --include '*.java' teststring /home/user1

আপনি যদি কখনও অন্য ইউনিক্স বৈকল্পিকের সাথে থাকেন তবে এতে জিএনইউ গ্রেপ নেই, এখানে একটি বহনযোগ্য উপায়:

find /home/user1 -name '*.java' -exec grep teststring {} +

চমৎকার এই
গ্রেপ

1
আপনি যদি বর্তমান দির এবং এটির সমস্ত ফাইল অনুসন্ধান করছেনgrep -r teststring .
ক্রিস মোসচিনি


4

এই আক্কের জন্য ওরফে অ্যাক-গ্রেপ এটি আমার মনে হত্যাকারী অ্যাপ্লিকেশন;)

আপনি ack some_string /in/path_yএটি some_string মধ্যে path_y অথবা সহজ ack some_other_stringবর্তমান দির some_other_sting খুঁজে।


2

এটি পেয়েছি। এটি কারও সহায়ক হতে পারে এমনভাবে পোস্ট করা।

find /home/user01 -name *.java | xargs grep "teststring"

এর চেয়ে আরও ভাল কোনও উপায় থাকলে দয়া করে সংশোধন করুন।


3
সাধারণত, আপনি ব্যবহার করা উচিত -print0এবং -0যখন বংশীধ্বনিতুল্য findমধ্যে xargsসঠিকভাবে ফাইল সেগুলির নামের মধ্যে উপস্থিত স্পেস বা নতুন লাইন থাকতে পারে এর সাথে কাজ করা:find /home/user01 -name *.java -print0 | xargs -0 grep "teststring"
পরবর্তী ঘোষণা না হওয়া পর্যন্ত বিরাম দেওয়া।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.