Chinaunix
标题:
如何一个多行内容的文件去和另一个多行内容的文件去匹配?
[打印本页]
作者:
djzhangxing
时间:
2014-08-13 17:16
标题:
如何一个多行内容的文件去和另一个多行内容的文件去匹配?
如何将file1中属于在file2中echo出来,我想要的结果中就是file1.txt中只是在file2.txt网段中就打印出来
cat file1.txt
115.182.51.162
115.182.51.163
123.125.27.56
115.182.51.164
113.207.127.206
117.121.53.59
113.207.127.207
10.182.198.99
10.182.198.100
113.207.127.208
复制代码
cat file2.txt
117.121.53.x
220.181.117.x
10.182.198.x
123.125.27.x
复制代码
作者:
li0924
时间:
2014-08-13 17:19
awk -F"." 'NR==FNR{a[$1$2$3]=1;next}a[$1$2$3]' file2.txt file1.txt
复制代码
作者:
dn833
时间:
2014-08-13 17:28
#!/bin/bash
S_FILE=($(cat file1.txt))
D_FILE=($(cat file2.txt))
for i in ${S_FILE[@]}
do
for j in ${D_FILE[@]}
do
if [[ "$i" =~ "${j%.*}" ]];then
echo "$i"
fi
done
done
复制代码
作者:
zxy877298415
时间:
2014-08-13 21:26
本帖最后由 zxy877298415 于 2014-08-13 21:27 编辑
回复
1#
djzhangxing
awk -F. 'NR==FNR{a[$1$2$3]=a[$1$2$3]?a[$1$2$3] "\n"$0:$0;next}{print a[$1$2$3]}' file1.txt file2.txt
作者:
yestreenstars
时间:
2014-08-13 23:58
awk -F. -vOFS=. 'NR==FNR{$4="";a[$0];next}{t=$4;$4="";if($0 in a)print $0t}' file2.txt file1.txt
复制代码
作者:
yestreenstars
时间:
2014-08-14 00:01
@li0924
@zxy877298415
不要用$1$2$3这种方式,可能会出错~
作者:
li0924
时间:
2014-08-14 09:19
回复
6#
yestreenstars
理解。那就加上FS吧-$1 FS $2 FS $3。或者把$4置空。
作者:
zxy877298415
时间:
2014-08-14 09:24
回复
6#
yestreenstars
哦,楼主想是想把file1在file2中的输出,还是想把file2在file1中的输出。。。。。
作者:
fxpbupt
时间:
2014-08-14 09:54
grep -Eo '[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}' urfile |xargs -L 1 -i grep {} a
作者:
fxpbupt
时间:
2014-08-14 09:56
grep -Eo '[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}' file2|xargs -L 1 -i grep {} file1
作者:
yestreenstars
时间:
2014-08-14 10:28
回复
8#
zxy877298415
你的语文需要恶补~
作者:
fxpbupt
时间:
2014-08-14 10:32
同感,楼主发了好多帖子,句子都不通顺
回复
11#
yestreenstars
欢迎光临 Chinaunix (http://bbs.chinaunix.net/)
Powered by Discuz! X3.2