免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 2547 | 回复: 6
打印 上一主题 下一主题

如何根据第一个中文件检索到的数据,到第二个文件中逐行比较 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2007-03-16 09:33 |只看该作者 |倒序浏览
数据文件1:

  1. 1 a AA
  2. 2 b BB
  3. 3 c CC
  4. 4 d DD
  5. ...
复制代码


数据文件2

  1. s   b  adf03
  2. 01 a AAA01
  3. 02 b BBC03
  4. 03 c  BCD03
  5. 04 d DDC04
  6. ...
复制代码


目的是: 读 数据文件2的第一行,从指定的位置读出来变量,比如 adf03 之中的03 (这个我知道可以用substring)
然后把读出来的变量(03),从第二行往下开始 在第三列中比较后两位。
如果match 的话(BBC03, BBD03...),就把这条记录中第三列中的前面2位拿出来(BB,BC...)
然后逐一送入数据文件1中的第三列比较。
如果没有match的,就把这个打印出来。

[ 本帖最后由 孤独王子 于 2007-3-18 14:32 编辑 ]

论坛徽章:
0
2 [报告]
发表于 2007-03-16 15:41 |只看该作者
还是没想出来

论坛徽章:
0
3 [报告]
发表于 2007-03-17 13:31 |只看该作者
现在提取的工作做完了。

就查比较两个文件的内容了。
如何做啊,两行文件逐行比较

论坛徽章:
0
4 [报告]
发表于 2007-03-17 13:36 |只看该作者
原帖由 孤独王子 于 2007-3-17 13:31 发表
现在提取的工作做完了。

就查比较两个文件的内容了。
如何做啊,两行文件逐行比较

需求有些复杂,建议静下心来想想,问题都不会太棘手。
“从指定的位置读出来变量”不是很明确,具体是什么样的问题?也许不用这么绕的方法来做,看是不是有更巧妙的方法。

[ 本帖最后由 Cion 于 2007-3-17 13:38 编辑 ]

论坛徽章:
0
5 [报告]
发表于 2007-03-17 17:35 |只看该作者
应该不难 最好描述清楚一点 有点不明白你的意思

论坛徽章:
0
6 [报告]
发表于 2007-03-17 18:26 |只看该作者
在文件1中查找需要的数据并定位到t
awk  'FILENAME=="file1"{ if($0~/03$/&&NR>1){b=substr($NF,1,2);print b}}'  file1 >t

下面的脚本读文件t在文件2中查找并且输出需要的数据
#################################
for  i in  `cat t`
do

if grep -q $i file2
then
echo
else
echo $i
fi
done
###########################

论坛徽章:
0
7 [报告]
发表于 2007-03-17 21:05 |只看该作者
提取的工作已经完成了。现在就是逐行比较了。
文件1

  1. 111
  2. 222
  3. 333e
  4. 444
  5. 555
复制代码


文件2

  1. 111
  2. 2222
  3. 333
  4. 4444
  5. 555
复制代码


目的就是从文件1把第1行拿出来,跟第二文件逐行比较,如果没有同样的纪录,就把这个保存起来,稍后打印出来
然后从文件1把第2行拿出来,也是跟第二个文件比较,如果没有,也把这个保存起来稍候打印出来
以此类推,一直到第一个文件最后1条数据比较完,然后把刚刚比较的没有的纪录打印出来。

这个要怎么做噢,利用awk输组吗?
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP