免费注册 查看新帖 |

Chinaunix

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

今天工作中遇到的一个真实的awk问题 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2003-06-03 22:22 |只看该作者 |倒序浏览
问题是这样的:

在一个文件中,第一行如果$1有内容,$2有内容,$3也有内容,$4也有内容
$5也有内容
但是第二行,$2没有内容,其他都有内容
如果我的*.awk脚本 是这样的:
BEGIN={FS=" "}
{
printf ("%s %s %s\n",$1,$2,$4)
}
END{ }
由于第二行$2为空,这样此脚本会出现将第二行的$3认为是$2,$4认为是$3
来处理,达不到预期的效果,不知道有没有什么办法???
而且每一列的长度不等,用substr结合print $0行不通的!
还有个问题就是如果原始文件的分隔符为一个空格,如何将处理的后
文件分隔符改为多个空格啊或者其他任意符号的分隔符????

论坛徽章:
0
2 [报告]
发表于 2003-06-03 22:26 |只看该作者

今天工作中遇到的一个真实的awk问题

文件分隔符的问题,如果文件内容字段长度不等,不好处理,最好将原文件的分隔符取成空格以外的其他字符,或者将空字段赋以特殊字符.

论坛徽章:
0
3 [报告]
发表于 2003-06-03 22:40 |只看该作者

今天工作中遇到的一个真实的awk问题

楼上大哥:
但是如何才能将空格转换成其他分割符或者
特殊字符了?

论坛徽章:
0
4 [报告]
发表于 2003-06-03 22:59 |只看该作者

今天工作中遇到的一个真实的awk问题

你得原始数据是怎么来的?数据库?excel?还是其他?

论坛徽章:
0
5 [报告]
发表于 2003-06-03 23:05 |只看该作者

今天工作中遇到的一个真实的awk问题

是我们省行发下来的企业帐户余额报表
$1代表帐户,$2代表旧帐户或者卡号,其他的代表帐户余额和帐户名称,月平均余额等等
但是有一部分$2是不存在旧帐户和卡号的
所以就造成了第二列为空的现象

论坛徽章:
0
6 [报告]
发表于 2003-06-03 23:12 |只看该作者

今天工作中遇到的一个真实的awk问题

那只有单个排除了;
假设你得每行数据有N个字段;
awk 'NF!=N{print $0}' filename >otherfile1
awk 'NF=N{print $0}' filename >otherfile2
降文件分成两个小文件,分别处理.

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

今天工作中遇到的一个真实的awk问题

恩。我上午是用的if (length($2)==19),printf ("%s %s %S\n",$1,$2,$5)
我整整花了进5个小时才把全部的报表处理好,如果$2不为空的话最多只要
半个小时,差距如此之大,自己真是无能。
对了,还有个问题就是如果原始文件的分隔符为一个空格,如何将处理的后
文件分隔符改为多个空格啊或者其他任意符号的分隔符????

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

今天工作中遇到的一个真实的awk问题

原帖由 "tzxys" 发表:
恩。我上午是用的if (length($2)==19),printf ("%s %s %S\n",$1,$2,$5)
我整整花了进5个小时才把全部的报表处理好,如果$2不为空的话最多只要
半个小时,差距如此之大,自己真是无能。
对了,还有个问题就是如果?.........

在awk 中用OFS="|"定义分隔符为"|",当然","也可以,最好不要用多个空格,不好区分分隔符于空格字段的.

论坛徽章:
0
9 [报告]
发表于 2003-06-04 00:17 |只看该作者

今天工作中遇到的一个真实的awk问题

谢谢大哥了
我先睡觉了!
对了,你的qq多少啊??
我的qq是17626153
交个朋友了 :)

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

今天工作中遇到的一个真实的awk问题

原帖由 "tzxys" 发表:
谢谢大哥了
我先睡觉了!
对了,你的qq多少啊??
我的qq是17626153
交个朋友了 :)
   

不是大哥,她是受人尊敬的小侄女。。。

您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP