2012-12-14 19 views
26

के साथ grep परिणाम कैसे दिखाएं I grep जब मुझे पूर्ण फ़ाइल पथ पता होना चाहिए।पूर्ण पथ या फ़ाइल नाम

मैं की तरह

cat *.log | grep somethingtosearch 

आदेशों का उपयोग अब मैं क्या जहां मिलान किया परिणाम बाहर ले जाया गया से पूरी फाइल पथ के साथ परिणाम दिखाने की जरूरत है।

किसी की भी मदद करें?

उत्तर

10

मान लिया जाये कि आप में दो लॉग-फ़ाइलें:

  • सी:
  • सी /temp/my.log: /temp/alsoMy.log सेल्सियस तक

सीडी: और उपयोग :

:

grep -r somethingtosearch temp/*.log 

यह आप की तरह एक सूची दे देंगे

+0

मैं कैसे खोजा सामग्री की लाइन नंबर मिल सकता है? –

+0

@ Özzesh add -n linenumbers की रिपोर्टिंग के लिए – Schpaencoder

-1

उपयोग:

grep somethingtosearch *.log 

और फ़ाइल नाम मैचों के साथ-साथ बाहर प्रिंट किया जाएगा।

15

क्या आपने -l ध्वज का उपयोग करने का प्रयास किया है?

grep -l somethingtosearch 

यह सिर्फ पथ और फ़ाइल नाम जहाँ खोज मिला था, न कि पूरी लाइनें जहां मैच बनाया गया था वापस आ जाएगी।

रिकर्सन के लिए -r ध्वज के साथ उपयोग करें।

+8

ग्रेप -l केवल फ़ाइल नाम दे देंगे नहीं पूरा पथ – Kapil

1

के लिए मुझे
ग्रेप बी "searchsomething" * .log काम के रूप में मैं

+1

यह आप जो चाहते हैं उसके बारे में नहीं है, यह ओपी चाहता है के बारे में है। – a20

5

आप पूर्ण पथ देखना चाहते हैं तो चाहता था, मैं (अपने ड्राइव के शीर्ष निर्देशिका के लिए cd करने की सिफारिश करेंगे अगर विंडोज़ का उपयोग)

cd C:\ 
grep -r somethingtosearch C:\Users\Ozzesh\temp 

या लिनक्स पर:

cd/
grep -r somethingtosearch ~/temp 

यदि आप वास्तव में अपने फ़ाइल नाम फ़िल्टरिंग (*।लॉग इन करें) और आप recursive चाहते हैं (फ़ाइलें एक ही निर्देशिका में सभी नहीं कर रहे हैं), के संयोजन find और grep सबसे आसान तरीका है:

cd/
find ~/temp -iname '*.log' -type f -exec grep somethingtosearch '{}' \; 
1

पूर्ण पथ मुद्रित करने के लिए सबसे आसान तरीका है निरपेक्ष पथ के साथ रिश्तेदार शुरू पथ की जगह है:

grep -r --include="*.sh" "pattern" ${PWD} 
1

कमान:

grep -rl --include="*.js" "searchString" ${PWD} 

वापस किया गया उत्पादन:

012,
/root/test/bas.js 
1

मैं यहां गिरता हूं जब मैं एक ही समस्या के लिए बिल्कुल देख रहा था और शायद यह अन्य की मदद कर सकता है।

मुझे लगता है कि वास्तविक समाधान है:

cat *.log | grep -H somethingtosearch 
संबंधित मुद्दे