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

आप एक स्क्रिप्ट बना सकते हैं जो स्मृति में सब कुछ रखती है, या आप एक को लागू कर सकते हैं।

अपनी r फ़ाइल को एक sed स्क्रिप्ट में बदलें, जो प्रत्येक मैच के लिए एक इंडेक्स नंबर प्रिंट करता है: sed के बजाय

  / 1 / s / ^ / 00001 / / 2 / s / ^ / 00002 /  

का उपयोग करें > Grep , और उपसर्ग द्वारा सॉर्ट करें; फिर उपसर्ग को त्यागें।

  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

Popular posts from this blog

Pass DB Connection parameters to a Kettle a.k.a PDI table Input step dynamically from Excel -

multithreading - PhantomJS-Node in a for Loop -

c++ - MATLAB .m file to .mex file using Matlab Compiler -