将字符串grep到另一个文件

时间:2015-06-11 06:43:37

标签: awk grep

我有两个文件:

cat A.txt

 5000000000000022805787
 5000000000009228662688
 5000000000009253546657

cat B.txt

 22805177, 22805179
 9228662680, 9228662689
 22805787, 22805789

输出:

 9228662680, 9228662689
 22805787, 22805787

我想从B.txt中查看A.txt中的数字(在零之后)。我有一个代码,但没有显示输出。

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

PS

 anum:
 2280578
 922866268
 925354665

2 个答案:

答案 0 :(得分:1)

您缺少一个短划线来指定该文件来自管道

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

此输出

9228662680, 9228662689
22805787, 22805789

答案 1 :(得分:0)

你应该以相反的方式做这件事。

您需要使用awk生成的模式进行搜索。所以你可以写点像

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

PS 您可以使用awk完全执行此操作。