免费注册 查看新帖 |

Chinaunix

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

求助一道bash遍历题 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2009-10-27 11:36 |只看该作者 |倒序浏览
某机器的/home/cluster/Desktop/cardno.txt文件处理
编写bash脚本,提取卡号中带“23”,7,且最后一位为3或者7的卡号
生成两个文件 A.txt(提取出来卡号的文件),B.txt原来卡号去除提取后的卡号

这是我复制的其中一段卡号
001653048120226
001653048120227
001653056911002
001653056911008
001653056911010
001653056911011
001653057220021
622909113988464412
622909113989205111
622909116017985315
622909116036499918
622909116050845319
622909116054681116
622909116084912317
622909116112466013
622909116113454919

生成文件 A.txt(提取出来卡号的文件)
我做出来了,
#!/bin/bash
cat /home/cluster/Desktop/cardno.txt|while read line
do
        grep  '23'| grep '[3,7]$'|grep '7'>A.txt
        cat /home/cluster/Desktop/cardno.txt|while read line
do
                这里不会写,文件B.txt原来卡号去除提取后的卡号>B.txt
done

但文件B.txt原来卡号去除提取后的卡号不知道怎么做阿
帮帮忙阿

论坛徽章:
5
2015年辞旧岁徽章
日期:2015-03-03 16:54:152015年迎新春徽章
日期:2015-03-04 09:50:282015年亚洲杯之朝鲜
日期:2015-03-13 22:47:33IT运维版块每日发帖之星
日期:2016-01-09 06:20:00IT运维版块每周发帖之星
日期:2016-03-07 16:27:44
2 [报告]
发表于 2009-10-27 11:54 |只看该作者
grep -Fxvf A.txt cardno.txt > B.txt

论坛徽章:
0
3 [报告]
发表于 2009-10-27 12:12 |只看该作者
  1. awk '/23/&&/7/&&/[37]$/{print >"A.txt";next}{print >"B.txt"}' file
复制代码

论坛徽章:
0
4 [报告]
发表于 2009-10-27 13:25 |只看该作者
多谢,非常感谢

论坛徽章:
0
5 [报告]
发表于 2009-10-27 16:25 |只看该作者
原帖由 ywlscpl 于 2009-10-27 12:12 发表
awk '/23/&&/7/&&/[37]$/{print >"A.txt";next}{print >"B.txt"}' file



这句很强大吗!!
能解释一下next在这怎么讲。谢谢!!

[ 本帖最后由 NTRY 于 2009-10-27 16:26 编辑 ]

论坛徽章:
0
6 [报告]
发表于 2009-10-27 16:31 |只看该作者
简单讲就是跳到下一条记录,后面的语句不执行了
  1. next                  Stop  processing  the  current input record.  The
  2.                              next input record is read and  processing  starts
  3.                              over  with  the first pattern in the AWK program.
  4.                              If the end of the input data is reached, the  END
  5.                              block(s), if any, are executed.
复制代码

论坛徽章:
0
7 [报告]
发表于 2009-10-27 16:50 |只看该作者
原帖由 ywlscpl 于 2009-10-27 16:31 发表
简单讲就是跳到下一条记录,后面的语句不执行了
next                  Stop  processing  the  current input record.  The
                             next input record is read and  processing  star ...

呵呵。受教了!!

论坛徽章:
0
8 [报告]
发表于 2009-10-27 17:01 |只看该作者

回复 #6 ywlscpl 的帖子

很好,很强大

[ 本帖最后由 liying_gg 于 2009-10-27 17:04 编辑 ]

论坛徽章:
0
9 [报告]
发表于 2009-10-27 17:03 |只看该作者

回复 #8 liying_gg 的帖子

&&,与
对应||,或

论坛徽章:
0
10 [报告]
发表于 2009-10-27 17:05 |只看该作者

回复 #9 ywlscpl 的帖子

你的头像真帅!
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP