मैं एक linux नौसिखिया हूँ। मुझे सभी * .java फ़ाइलों के तहत / home / user1 / (सबफ़ोल्डर्स सहित) में आने वाली एक स्ट्रिंग "टेस्टस्ट्रिंग" की खोज करने की आवश्यकता है। मैं इसे शेल कमांड के माध्यम से लिनक्स में कैसे कर सकता हूं।
मैं एक linux नौसिखिया हूँ। मुझे सभी * .java फ़ाइलों के तहत / home / user1 / (सबफ़ोल्डर्स सहित) में आने वाली एक स्ट्रिंग "टेस्टस्ट्रिंग" की खोज करने की आवश्यकता है। मैं इसे शेल कमांड के माध्यम से लिनक्स में कैसे कर सकता हूं।
जवाबों:
सबसे आसान तरीका GNU grep की विशेषताओं का उपयोग करना है:
grep -r --include '*.java' teststring /home/user1
यदि आप कभी किसी अन्य यूनिक्स संस्करण पर होते हैं जिसमें GNU grep नहीं है, तो यहाँ एक पोर्टेबल तरीका है:
find /home/user1 -name '*.java' -exec grep teststring {} +
grep -r teststring .
का उपयोग कर पावती तुम सिर्फ टाइप करें:cd /home/user01 && ack --java teststring
ack --java teststring /home/user01
मिल गया। पोस्टिंग के रूप में यह किसी की मदद कर सकता है।
find /home/user01 -name *.java | xargs grep "teststring"
अगर कोई बेहतर तरीका है तो कृपया सही करें।
-print0
और -0
जब पाइप find
में xargs
ठीक से फ़ाइलें उनके नाम में रिक्त स्थान या नई-पंक्तियों हो सकता है के साथ काम करने के लिए:find /home/user01 -name *.java -print0 | xargs -0 grep "teststring"