• <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>
  • shell問答17:用join比較處理某些字段相同的文件

    發表于:2007-07-04來源:作者:點擊數: 標簽:
    整理了一夢如是、mocou、guangzongy和begincwcw的 解決方案 ,以資借鑒!謝過先:) 問: # cat aa 123|11|aaaaa 124|12|abasf 125|12|aaccc 126|13|ccccc 127|14|ccvvv 128|17|vgfgd # cat bb 12|aaa 12|ddd 13|aaa 14|aaa 要生成 124|12|abasf 124|12|abasf 1
    整理了一夢如是、mocou、guangzongy和begincwcw的解決方案,以資借鑒!謝過先:)

    問:
     # cat aa
    123|11|aaaaa
    124|12|abasf
    125|12|aaclearcase/" target="_blank" >ccc
    126|13|ccccc
    127|14|ccvvv
    128|17|vgfgd 
    # cat bb
    12|aaa
    12|ddd
    13|aaa
    14|aaa
    要生成
    124|12|abasf
    124|12|abasf
    125|12|aaccc
    125|12|aaccc
    126|13|ccccc
    127|14|ccvvv
    既將aa中第二域與bb中第一域相同的記錄打印出來,怎樣實現?

    答案:
    1.join -2 1 -1 2 1 2 -t'|' -o 1.1,1.2,1.3
    2.for line in `<a.txt` ;do key=`echo $line|cut -d '|' -f2`; [ -z "`grep $key b.txt`" ]||echo $line; done
    3.awk的方法
    A:
    nawk 'BEGIN { FS = "|"; while ((getline < "bb.txt") > 0) { lines[] }}
           { if( in lines)
                  print }' aa.txt
    以上運行結果為aa.txt在bb.txt存在的。

    B:
    nawk 'BEGIN { FS = "|"; while ((getline < "bb.txt") > 0) { lines[] }}
             { if( in lines)
                     next
                else
                     print }' aa.txt
    以上運行結果為aa.tt在bb.tt不存在的。

    C:
    nawk 'BEGIN { FS = "|"; while ((getline < "bb.txt") > 0) { lines[] }}
            { if( in lines)
                    print "|find"
               else
                    print "|not find" }' aa.txt
    以上運行結果為aa.txt在bb.txt中找到的打印find,沒有找到的打印not find。

    原文轉自:http://www.kjueaiud.com

    老湿亚洲永久精品ww47香蕉图片_日韩欧美中文字幕北美法律_国产AV永久无码天堂影院_久久婷婷综合色丁香五月

  • <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>