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
Post a Comment