linux - grep -f r t, how to make the result sort by r, not t -
$ cat r 1 2 $ cat t 22 11 $ grep -frt 22 11
आप एक स्क्रिप्ट बना सकते हैं जो स्मृति में सब कुछ रखती है, या आप एक को लागू कर सकते हैं।
अपनी का उपयोग करें > Grep r
फ़ाइल को एक sed
स्क्रिप्ट में बदलें, जो प्रत्येक मैच के लिए एक इंडेक्स नंबर प्रिंट करता है: sed
के बजाय
, और उपसर्ग द्वारा सॉर्ट करें; फिर उपसर्ग को त्यागें।
/ 1 / s / ^ / 00001 / / 2 / s / ^ / 00002 /
sed -f r टी | सॉर्ट-एन | कट-डी '' -f2- & gt; आउटपुट
sed
स्क्रिप्ट बनाना बहुत मुश्किल नहीं होना चाहिए; यहां एक साधारण अक्सा स्क्रिप्ट है (ओह, विडंबना!)
awk '{printf ("/% s / s / ^ /% 05i / \ n", $ 0, एनआर)}' आर एंड एस; r.sed
यदि आप अपने regexes में slashes है, चीजों को थोड़ा अधिक जटिल करना होगा। याद रखें कि / foo /
को भी \: foo:
लिखा जा सकता है, इसलिए यदि आप एक उपयुक्त सीमांकक ढूंढ सकते हैं जो आपके डेटा में नहीं आता है, तो संभवतः सबसे आसान समाधान है। < / P>
यदि आपका sed
मानक इनपुट से एक स्क्रिप्ट पढ़ सकता है (उन सभी को नहीं, लेकिन लिनक्स sed
ठीक होना चाहिए) आप अस्थायी उपयोग से बच सकते हैं फ़ाइल; तब पूरी पाइपलाइन तब
awk '{printf ("/% s / s / ^ /% 05i / \ n", $ 0, एनआर)}' आर 'है। Sed -f- टी | सॉर्ट-एन | कट-डी '' -f2- & gt; आउटपुट
Comments
Post a Comment