Awk 将字符串grep到另一个文件
我有两个文件,其中: cat A.txtAwk 将字符串grep到另一个文件,awk,grep,Awk,Grep,我有两个文件,其中: cat A.txt 5000000000000022805787 5000000000009228662688 5000000000009253546657 cat B.txt 22805177, 22805179 9228662680, 9228662689 22805787, 22805789 输出: 9228662680, 9228662689 22805787, 22805787 我想从B.txt中grep A.txt中的数字(在零之后)。我有
5000000000000022805787
5000000000009228662688
5000000000009253546657
cat B.txt
22805177, 22805179
9228662680, 9228662689
22805787, 22805789
输出:
9228662680, 9228662689
22805787, 22805787
我想从B.txt中grep A.txt中的数字(在零之后)。我有下面的代码,但没有显示输出
awk '{anum=substr($1,3,19); sub(/^0+/, "", anum); print anum}' A.txt | grep -nf B.txt
PS
你应该反过来做 您需要使用
awk
生成的模式进行搜索。所以你可以写一些像
$ grep "$(awk '{anum=substr($1,3,19); sub(/^0+/, "", anum); print anum}' a)" b
9228662680, 9228662689
22805787, 22805789
PS您完全可以使用
awk
完成此操作。您缺少一个破折号来指定文件来自管道
awk '{anum=substr($1,3,19); sub(/^0+/, "", anum); print anum}' A.txt | grep -f - B.txt
这个输出
9228662680, 9228662689
22805787, 22805789
您希望如何准确地获得输出?例如,数字22805187不在.txt中,但它会显示在输出中。通过
9228662680、9228662689
您是否尝试将其范围从9228662680
到9228662689
?或者您正在对每个数字进行比较?例如,awk结果是922866268,只需从B.txt中的所有记录中对其进行grep,那么输出将是9228662680、9228662689。但是您如何获得此行22805187、22805189
?awk没有生产这两个号码哦,对不起。已经更新了我的问题
9228662680, 9228662689
22805787, 22805789