2015-06-11 21 views
1

我有兩個文件,其中:用grep一個字符串到另一個文件

貓A.TXT

5000000000000022805787 
5000000000009228662688 
5000000000009253546657 

貓B.txt

22805177, 22805179 
9228662680, 9228662689 
22805787, 22805789 

輸出:

9228662680, 9228662689 
22805787, 22805787 

我想從B.txt中的A.txt中(在零之後)grep數字。我有一個下面的代碼,但不顯示輸出。

awk '{anum=substr($1,3,19); sub(/^0+/, "", anum); print anum}' A.txt | grep -nf B.txt 

PS

anum: 
2280578 
922866268 
925354665 
+0

究竟是如何做你希望得到的輸出?例如,數字22805187不在A.txt中,但它顯示在輸出中。 – bkmoney

+0

'9228662680,9228662689'你想把它從'9228662680'變成'9228662689'?或者你正在比較每個號碼? –

+0

例如,awk的結果是922866268,只是想從B.txt所有記錄的grep,所以輸出將是9228662680,9228662689. – starpark

回答

0

你應該反過來做它。

您需要使用awk生成的圖案進行搜索。所以,你可以寫類似

$ grep "$(awk '{anum=substr($1,3,19); sub(/^0+/, "", anum); print anum}' a)" b 
9228662680, 9228662689 
22805787, 22805789 

PS你可以做到完全使用awk這件事情。

1

你缺少一個破折號來指定文件從管道來

awk '{anum=substr($1,3,19); sub(/^0+/, "", anum); print anum}' A.txt | grep -f - B.txt 

此輸出

9228662680, 9228662689 
22805787, 22805789 
相關問題