免费注册 查看新帖 |

Chinaunix

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

如文本,awk如何处理??? [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2003-06-19 16:07 |只看该作者 |倒序浏览
文本如下:
BT=我的文本
ACC=1000011234
M=0523
BD=23.44
CR=
AMOUT=5000.00
M=0524
BD=
CR=56.33
AMOUT=10000.00
VCHNO=1E33
.
.
.
ACC=1000012555
M=0501
BD=1111.00
CR=99.00
M=0502
BD=999.00
CR=
AMOUT=2000.00
M=0503
BD=
CR=100.00
AMOUT=1900.00
VCHNO=1K34
.
.
.
ACC=100066655
.
.
.
.
.

我想做一SHELL,输入一个ACC(帐号) 把此帐号所属的信息生成一个新的文本
如输入:1000012555
产生如下文本:
ACC=1000012555
M=0501
BD=1111.00
CR=99.00
M=0502
BD=999.00
CR=
AMOUT=2000.00
M=0503
BD=
CR=100.00
AMOUT=1900.00
VCHNO=1K34
.
.
.
请高手指点! 谢!

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

如文本,awk如何处理???

SCO UNIX
  1. a=1000012555;sed -n "/ACC=$a/,/^ACC/p"  yourfile|sed '$d' >newfile
  2. 结果
  3. cat newfile
  4. ACC=1000012555
  5. M=0501
  6. BD=1111.00
  7. CR=99.00
  8. M=0502
  9. BD=999.00
  10. CR=
  11. AMOUT=2000.00
  12. M=0503
  13. BD=
  14. CR=100.00
  15. AMOUT=1900.00
  16. VCHNO=1K34
  17. .
  18. .
  19. .
复制代码

论坛徽章:
0
3 [报告]
发表于 2003-06-19 16:55 |只看该作者

如文本,awk如何处理???

最后那个sed '$d'是什么意思?去掉最后一行?

论坛徽章:
1
荣誉版主
日期:2011-11-23 16:44:17
4 [报告]
发表于 2003-06-19 17:02 |只看该作者

如文本,awk如何处理???

因为sed列出的是两个ACC打头的行之间的(也包括这两行),所以要删除后边的。

论坛徽章:
0
5 [报告]
发表于 2003-06-19 17:11 |只看该作者

如文本,awk如何处理???

augusta: 很感谢赐教;

论坛徽章:
0
6 [报告]
发表于 2003-06-19 17:14 |只看该作者

如文本,awk如何处理???

[#! /bin/bash
continue=yes
while [ "$continue" = "yes" ] ; do
echo -e "Enter the account,you can see the infromation of this account"
read acc
sed -n "/ACC=$acc/,/^ACC/p" information | sed '$d' > $acc
if [ $? -ne 0 ]; then
echo "error occured"
break
else
echo "the information of account $acc were outputed to the file $acc"
fi
echo "do you want to continue,[yes] to continue"
read continue
done
至于输入的判断,输出的判断为了安全起见,你也可以加进去啊~~

论坛徽章:
0
7 [报告]
发表于 2003-06-19 21:21 |只看该作者

如文本,awk如何处理???

我们学习工作就得有anonimousboy的严谨态度!

论坛徽章:
0
8 [报告]
发表于 2003-06-20 08:03 |只看该作者

如文本,awk如何处理???

[quote]原帖由 "grljt"]我们学习工作就得有anonimousboy的严谨态度![/quote 发表:
     
承蒙夸奖啊,只不过昨天大虾们都没时间罢了,所以才让我这个小鸟给钻了空子了~~害羞中...............

论坛徽章:
0
9 [报告]
发表于 2003-06-20 09:11 |只看该作者

如文本,awk如何处理???

请教anonimousboy:
   我有点不明白,当输入的账号是最后一个纪录的时候,你是怎么保持正确性的?我是过了,你的程序是对的。是不是sed搜索不到^ACC时默认为最后一行?那么在这个时后 sed '$d' 是不是把最后一行删除了?我这就迷惑了!

论坛徽章:
0
10 [报告]
发表于 2003-06-20 10:25 |只看该作者

如文本,awk如何处理???

原帖由 "peterbingxu" 发表:
请教anonimousboy:
   我有点不明白,当输入的账号是最后一个纪录的时候,你是怎么保持正确性的?我是过了,你的程序是对的。是不是sed搜索不到^ACC时默认为最后一行?那么在这个时后 sed '$d' 是不是把最后一行删..........
   
嗬嗬,我也正想提这个问题,因为没试也不知会不会出错。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP