আমি একজন লিনাক্স নবাগত। আমার / হোম / ইউজার 1 / (সাবফোল্ডার সহ) এর অধীনে আসা সমস্ত *। জাভা ফাইলগুলিতে আমাকে স্ট্রিং "টেস্টস্ট্রিং" অনুসন্ধান করতে হবে। আমি এটি শেল কমান্ডের মাধ্যমে লিনাক্সে কীভাবে করতে পারি।
আমি একজন লিনাক্স নবাগত। আমার / হোম / ইউজার 1 / (সাবফোল্ডার সহ) এর অধীনে আসা সমস্ত *। জাভা ফাইলগুলিতে আমাকে স্ট্রিং "টেস্টস্ট্রিং" অনুসন্ধান করতে হবে। আমি এটি শেল কমান্ডের মাধ্যমে লিনাক্সে কীভাবে করতে পারি।
উত্তর:
সবচেয়ে সহজ উপায় হ'ল জিএনইউ গ্রেপের বৈশিষ্ট্যগুলি ব্যবহার করা:
grep -r --include '*.java' teststring /home/user1
আপনি যদি কখনও অন্য ইউনিক্স বৈকল্পিকের সাথে থাকেন তবে এতে জিএনইউ গ্রেপ নেই, এখানে একটি বহনযোগ্য উপায়:
find /home/user1 -name '*.java' -exec grep teststring {} +
grep -r teststring .
আপনি কেবল টাইপ করেন এসকে ব্যবহার করে :cd /home/user01 && ack --java teststring
ack --java teststring /home/user01
এই আক্কের জন্য ওরফে অ্যাক-গ্রেপ এটি আমার মনে হত্যাকারী অ্যাপ্লিকেশন;)
আপনি ack some_string /in/path_y
এটি some_string মধ্যে path_y
অথবা সহজ ack some_other_string
বর্তমান দির some_other_sting খুঁজে।
এটি পেয়েছি। এটি কারও সহায়ক হতে পারে এমনভাবে পোস্ট করা।
find /home/user01 -name *.java | xargs grep "teststring"
এর চেয়ে আরও ভাল কোনও উপায় থাকলে দয়া করে সংশোধন করুন।
-print0
এবং -0
যখন বংশীধ্বনিতুল্য find
মধ্যে xargs
সঠিকভাবে ফাইল সেগুলির নামের মধ্যে উপস্থিত স্পেস বা নতুন লাইন থাকতে পারে এর সাথে কাজ করা:find /home/user01 -name *.java -print0 | xargs -0 grep "teststring"