免费注册 查看新帖 |

Chinaunix

广告
  平台 论坛 博客 文库
12下一页
最近访问板块 发新帖
查看: 1305 | 回复: 10
打印 上一主题 下一主题

麻烦高手帮忙看个问题!!!!在线等,急!!!!!!!! [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2005-04-26 15:13 |只看该作者 |倒序浏览
我a.txt文件里有如下一列记录:
1101
1201
345
675
......
我b.txt文件里有两列数据如下:

a    11010
b    110102
c     345
d    3456
e    3458
f     2333
..........
我想显示b文件里第2列的数据记录以a.txt文件的数据开头的 所有记录。
譬如:a.txt文件里1101
我b.txt文件里就有如下的显示:
a    11010
b    110102

。。。
我现在是想显示b文件里第2列里所有以a 文件记录开头的记录。
请问如何表达?

论坛徽章:
1
荣誉版主
日期:2011-11-23 16:44:17
2 [报告]
发表于 2005-04-26 23:24 |只看该作者

麻烦高手帮忙看个问题!!!!在线等,急!!!!!!!!

关注。。。。。。。。一下

论坛徽章:
0
3 [报告]
发表于 2005-04-26 23:39 |只看该作者

麻烦高手帮忙看个问题!!!!在线等,急!!!!!!!!

try this? hopes it will help u

  1. while read i
  2. do
  3.     awk -v pattern=$i '{match($2,pattern);if(RSTART==1) print $0}' b.txt
  4. done < a.txt
复制代码

论坛徽章:
0
4 [报告]
发表于 2005-04-27 13:06 |只看该作者

麻烦高手帮忙看个问题!!!!在线等,急!!!!!!!!

谢谢楼上的哥们,不过上面程序运行的结果是完全匹配的结果,最后只显示为:
c     345

这里如何解决模糊匹配问题呀?
我如下用:
while read i
do
   awk -v pattern=$i '{(pattern~/^$2/);if(RSTART==1) print $pattern}' b.txt
done < a.txt

反而一行都没显示了,才怪哦!!

论坛徽章:
0
5 [报告]
发表于 2005-04-27 13:08 |只看该作者

麻烦高手帮忙看个问题!!!!在线等,急!!!!!!!!

上面写错了,应该是如下用的

while read i
do
   awk -v pattern=$i '{(pattern~/^$2/);if(RSTART==1) print $ $0}' b.txt
done < a.txt

但是还是一行都没显示了!!

论坛徽章:
1
荣誉版主
日期:2011-11-23 16:44:17
6 [报告]
发表于 2005-04-27 13:59 |只看该作者

麻烦高手帮忙看个问题!!!!在线等,急!!!!!!!!

  1. # cat a.txt
  2. 1101
  3. 1201
  4. 345
  5. 675
  6. # cat b.txt
  7. a    11010
  8. b    110102
  9. c     345
  10. d    3456
  11. e    3458
  12. f     2333
  13. # ./awk.awk
  14. a    11010
  15. b    110102
  16. c     345
  17. d    3456
  18. e    3458
  19. # cat awk.awk
  20. while read line
  21. do
  22.   grep $line b.txt
  23. done < a.txt
复制代码


其实偶是想看看grep -f如何贪婪匹配

论坛徽章:
0
7 [报告]
发表于 2005-04-27 14:06 |只看该作者

麻烦高手帮忙看个问题!!!!在线等,急!!!!!!!!

cat a |while read line ; do cat b |grep -E "\<$line"; done

论坛徽章:
1
荣誉版主
日期:2011-11-23 16:44:17
8 [报告]
发表于 2005-04-27 14:14 |只看该作者

麻烦高手帮忙看个问题!!!!在线等,急!!!!!!!!

[quote]原帖由 "panlm"]cat a |while read line ; do cat b |grep -E "\<$line"; done[/quote 发表:



谢了
  1. cat a.txt|while read line;do grep $line b.txt;done
复制代码

论坛徽章:
0
9 [报告]
发表于 2005-04-27 14:44 |只看该作者

麻烦高手帮忙看个问题!!!!在线等,急!!!!!!!!

怪呀:我用:
cat awk.awk
while read line
do
grep $line b.txt
done < a.txt
怎么有如下提示:
: 没有那个文件或目录
b.txt:a    11010
b.txt:b    110102
: 没有那个文件或目录
: 没有那个文件或目录
b.txt:c     345
b.txt:d    3456
b.txt:e    3458
: 没有那个文件或目录

论坛徽章:
1
荣誉版主
日期:2011-11-23 16:44:17
10 [报告]
发表于 2005-04-27 14:51 |只看该作者

麻烦高手帮忙看个问题!!!!在线等,急!!!!!!!!

偶晕。vi file
内容如下:
while read line
do
grep $line b.txt
done < a.txt
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP