现在的位置: 首页 > 综合 > 正文

如果b.txt的第一列為a.txt中含有的,則寫入到一個新的文件。

2013年09月10日 ⁄ 综合 ⁄ 共 5286字 ⁄ 字号 评论关闭

 

a.txt
CM-03-B052
CM-03-B051
CM-03-B053
CM-03-B054
CMSL-A-A-68.5
EP-BLOCK1
EP-BLOCK2

b.txt

CA101003-F001^10^M40G00101^20100612^^24.7^2.0^0.0^0^KG^1.0^1.0^^^0^N^0^N^0^Y^10^Y^Y^100.0^ ^ ^ ^N^CCC40332^20100612^cabmi600^
CA101003-M001^10^M40G00101^20100612^^25.3^2.0^0.0^0^KG^1.0^1.0^^^0^N^0^N^0^Y^10^Y^Y^100.0^ ^ ^ ^N^CCC40332^20100612^cabmi600^
CA100997-S004F^10^M30600101^20100612^^1.4^1.0^0.0^0^KG^1.0^1.0^^^0^N^0^N^0^Y^10^Y^Y^100.0^ ^ ^ ^N^CCC40332^20100612^cabmi600^
CA100948-U010/1^10^M30600101^20100612^^4.4^4.0^0.0^0^KG^1.0^1.0^^^0^N^0^N^0^Y^10^Y^Y^100.0^ ^ ^ ^N^CCC40332^20100612^cabmi600^
CA101004-F001^10^M40G00101^20100612^^11.1^1.0^0.0^0^KG^1.0^1.0^^^0^N^0^N^0^Y^10^Y^Y^100.0^ ^ ^ ^N^CCC40332^20100612^cabmi600^
CA101004-M001^10^M40G00101^20100612^^12.1^1.0^0.0^0^KG^1.0^1.0^^^0^N^0^N^0^Y^10^Y^Y^100.0^ ^ ^ ^N^CCC40332^20100612^cabmi600^
CA101013-F001^10^M40G00101^20100612^^29.6^2.0^0.0^0^KG^1.0^1.0^^^0^N^0^N^0^Y^10^Y^Y^100.0^ ^ ^ ^N^CCC40332^20100612^cabmi600^
CA101013-M001^10^M40G00101^20100612^^27.4^2.0^0.0^0^KG^1.0^1.0^^^0^N^0^N^0^Y^10^Y^Y^100.0^ ^ ^ ^N^CCC40332^20100612^cabmi600^
CA101003-B025^10^M70600204^20100612^^0.6^1.0^0.0^0^KG^1.0^1.0^^^0^N^0^N^0^Y^10^Y^Y^100.0^ ^ ^ ^N^CCC40332^20100612^cabmi600^
CA101003-B072/3^10^M30600101^20100612^^4.9^8.0^0.0^0^KG^1.0^1.0^^^0^N^0^N^0^Y^10^Y^Y^100.0^ ^ ^ ^N^CCC40332^20100612^cab

.
.
.

如何把b.txt裡面第一列為a.txt裡面內容的都過濾出來呢???

也就是如果b.txt的第一列為a.txt中含有的,則寫入到一個新的文件

__________________________________



 

回复 1# cheungjustin

    Top

__________________________________


 

 

没看见B文件里有包含A文件的行阿
__________________________________
天下风云出我辈 皇图霸业谈笑中


 

 

回复 3# bbgg1983

    有的,只是我截取的部分沒有而已。

__________________________________


 

 

  1. while read line;do awk -F^ -v var=$line '$1~var{print $0 >>"./c.txt"}' b.txt;done<a.txt

复制代码

__________________________________
天下风云出我辈 皇图霸业谈笑中


 

 

  1. awk -F^ 'NR==FNR{a[$0]=$0;next}{for(i in a)if($1==a[i])print $0}' a.txt b.txt >"c.txt"
  2. awk -F^ 'NR==FNR{a[$0]=$0;next}{if($1 in a)print $0}'  a.txt b.txt >"c.txt"

复制代码

__________________________________
天下风云出我辈 皇图霸业谈笑中


 

 

回复 6# bbgg1983

    太感謝兄台了,真是幫了個大忙。

__________________________________


 

 

  1. [b]回复 [url=http://bbs.chinaunix.net/redirect.php?goto=findpost&pid=12421333&ptid=1733441]7#[/url] [i]cheungjustin[/i] [/b]
  2.     [root@bj_manager test]# awk '{print NR,FNR}' test.txt test2.txt
  3. 1 1
  4. 2 2
  5. 3 3
  6. 4 4
  7. 5 5
  8. 6 6
  9. 7 7
  10. 8 8
  11. 9 9
  12. 10 10
  13. 11 11
  14. 12 1
  15. 13 2
  16. 14 3
  17. 15 4
  18. 16 5
  19. 17 6
  20. 18 7
  21. 19 8
  22. [root@bj_manager test]#

复制代码

__________________________________