gawk - Join two tables with AWK, one from stdin, other from file -


मेरे पास दो टैब-सीमांकित फाइल हैं:

फ़ाइल tmp1.tsv:

  1 आहा 2 बीबीबी 3 सीसीसी 4 डीडी 5 ईईआई   

फ़ाइल tmp2.tsv:

  3 2 4   

मैं इसे प्राप्त करना चाहता हूं:

  3 ccc 2 bbb 4 ddd   

निम्नलिखित रूटीन का उपयोग करना:

  $ बिल्ली tmp2.tsv | awk -F '\ t' & lt; जादू यहां & gt; tmp1.tsv   

मुझे पता है कि इसे stdin बिना कैसे बना सकता है:

  $ awk -F '\ t' 'एफएनआर == एनआर {एक [$ 1 ] = $ 2; अगले} {प्रिंट $ 1 एफएस एक [$ 1]} 'tmp1.tsv tmp2.tsv   

लेकिन यह पता नहीं कैसे इसे stdin के साथ बना सकता है साथ ही, समाधान की व्याख्या की सराहना की जाएगी।

अपने समाधान की कल्पना करना वांछित रूप से काम करता है, यह तुच्छ है के बजाय:

  awk -F '\ t' 'एफएनआर == एनआर {a [$ 1] = $ 2; अगले} {प्रिंट $ 1 एफएस एक [$ 1]} 'tmp1.tsv tmp2.tsv   

बस करो:

  & lt; tmp2.tsv awk -F '\ t' 'एफएनआर == एनआर {a [$ 1] = $ 2; अगले} {प्रिंट $ 1 एफएस एक [$ 1]} 'tmp1.tsv -   

(ध्यान दें कि मैंने cat tmp2.tsv को बदल दिया है। UUOC से बचें।)

वह है, - का एक फ़ाइल नाम निर्दिष्ट करें और एसक्यूडी STDIN से पढ़ा जाएगा।

Comments

Popular posts from this blog

c# - ASP.NET MVC - Attaching an entity of type 'MODELNAME' failed because another entity of the same type already has the same primary key value -

jasper reports - How to center align barcode using jasperreports and barcode4j -

django - CommandError: You must set settings.ALLOWED_HOSTS if DEBUG is False -