免费注册 查看新帖 |

Chinaunix

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

空字符 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2003-04-07 18:37 |只看该作者 |倒序浏览
我有一段用计费软件生成的文本文件,每个字段有固定长度,长度不够的用空字符补齐,但我只要其中的几个字段,这样的shell我该怎样写

论坛徽章:
0
2 [报告]
发表于 2003-04-07 18:48 |只看该作者

空字符

...

应该不难做. 但是需要例子

论坛徽章:
0
3 [报告]
发表于 2003-04-07 19:10 |只看该作者

空字符

论坛不允许上传文本文件,没法上传,那如果将空字符替换成空格健,该怎样写呢

论坛徽章:
0
4 [报告]
发表于 2003-04-07 20:05 |只看该作者

空字符

你可以把你的文本帖上来几段,就可以帮你好好分析啦.

论坛徽章:
0
5 [报告]
发表于 2003-04-07 21:17 |只看该作者

空字符

...

对, 不需要全部, 只要两三行就可以了, 主要就为看一下格式...

论坛徽章:
0
6 [报告]
发表于 2003-04-08 09:07 |只看该作者

空字符

谢谢,如下
111  01 200  200             200酗芴縐   07:41:00 00:02'29 S             渴捶韓               0.00A0 0.00    0.00   0.00  1.00 2003/03/31
231  01 130  13048907251     忒儂        07:48:00 00:00'27 R             睡粗擁               0.18A0 0.00    0.00   0.18  1.00 2003/03/31
231  01 136  13640962817     忒儂        07:49:00 00:00'29 R             睡粗擁               0.18A0 0.00    0.00   0.18  1.00 2003/03/31
231  01 135  13510567526     忒儂        07:50:00 00:00'59 R             睡粗擁               0.18A0 0.00    0.00   0.18  1.00 2003/03/31
128  03 271  27199999        蹕綬      07:53:00 00:00'28 R             挔釓眳               0.20A0 0.00    0.00   0.20  1.00 2003/03/31
231  01 135  13537676569     忒儂        07:52:00 00:02'08 R             睡粗擁               0.54A0 0.00    0.00   0.54  1.00 2003/03/31
231  01 130  13048907251     忒儂        07:57:00 00:02'05 R             睡粗擁               0.54A0 0.00    0.00   0.54  1.00 2003/03/31
212  03 277  27746033        蹕綬      08:00:00 00:00'39 R             換淩儂               0.20A0 0.00    0.00   0.20  1.00 2003/03/31
212  04 277  27747580        蹕綬      08:03:00 00:01'23 R             換淩儂               0.40A0 0.00    0.00   0.40  1.00 2003/03/31
320  08 839  83991267        韓詣        08:04:00 00:00'30 R                                  0.20A0 0.00    0.00   0.20  1.00 2003/03/31
123  08 135  13501596879     忒儂        08:05:00 00:00'31 R             隸漆               0.18A0 0.00    0.00   0.18  1.00 2003/03/31

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

空字符

有特点的写上两行就可以啦,你要取出来的是什么样的?

论坛徽章:
0
8 [报告]
发表于 2003-04-08 09:22 |只看该作者

空字符

怎么贴上变成乱码了,格式也变了。我把格式讲一下,以第一行为例:
111为分机号码,01 200为中继号,在接下来200是被叫号码,总共16位,不够以空字符补齐,在下是被叫地区,总共12位,剩下分别是通话时间,通话时长,通话费用等

论坛徽章:
0
9 [报告]
发表于 2003-04-08 11:05 |只看该作者

空字符

你这个文件每个字段间如果都有空格的话用awk
awk '{print  $4}' filename  取被叫号码

如果有些字段间没空格,麻烦点,用cut
cut -c 12-27 filename 取被叫号码.

论坛徽章:
0
10 [报告]
发表于 2003-04-08 13:40 |只看该作者

空字符

我的脚本是这样写的:
#! /bin/sh

[ -f /tmp/1 ] && rm -f 1
while read i; do
ext=`echo $i |cut -c 0-3`
phone=`echo $i | cut -c 14-29`
area= `echo $i | cut -c 30-42`
echo -e "$ext\t$phone\t$area" >> /tmp/1
done </tmp/aaa
但得到结果只有ext.在脚本中用echo $i看 $i只有在第一个空字符前面的内容。但在命令模式下输入:
cut -c 14-29 aaa得到结果又是我要的
注:空字符是在ascii表中的二进制中为00 也就是NULL
另外一个问题是: 在sed中可否用二进制替换比如将00替换成09
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP