LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 998|回复: 11

求助:一个文件中怎样提取数据?

[复制链接]
发表于 2007-5-9 16:34:36 | 显示全部楼层 |阅读模式
我现在有一个文件,每一行是一条记录,全部都是由数字和空格组成,每一样长度固定,每一个数字或者几个数字代表不同的意思。
比如:
2315640  554684654561635465412313241354
65465432132484513212  31545132124564543
怎样设定一些条件把符合的纪录提取出来?
比如,要提取底5位是6、第10-12位是123、第16-17位是65的纪录,并写到txt文本中?
谢谢。
发表于 2007-5-9 17:36:59 | 显示全部楼层
看看关于sed的介绍也许符合你的要求
回复 支持 反对

使用道具 举报

发表于 2007-5-9 18:20:03 | 显示全部楼层
  1. awk 'BEGIN{FS=""}$5==6&&$10==1&&$11==2&&$12==3&&$16==6&&$17==5{print $0}' ufile
复制代码
回复 支持 反对

使用道具 举报

 楼主| 发表于 2007-5-10 09:22:36 | 显示全部楼层
谢谢楼上,可能没有表达清楚。
我的意思是说,现在有一个文件,假设文件名是“test”,每一行是一条记录,全部都是由数字和空格组成,每一样长度固定,每一个数字或者几个数字代表不同的意思。
比如:
2315640 554684654561635465412313241354
65465432132484513212 31545132124564543
怎样设定一些条件把符合的纪录提取出来?
比如,要提取底5位是6、第10-12位是123、第16-17位是65的纪录,并写到txt文本中?
这里面说所的提取数据并不是提取6、123、65等等这些数据,而是把符合条件的这一条记录都提取出来,并重命名写到txt中。
谢谢。
回复 支持 反对

使用道具 举报

发表于 2007-5-10 20:12:52 | 显示全部楼层
  1. awk 'BEGIN{FS=""}$5==6&&$10==1&&$11==2&&$12==3&&$16==6&&$17==5{print $0}' ufile>dfile
复制代码


你的“第5位是6,第10-12位是123,第16-17位是65”是“且”的关系还是“或”的关系?
回复 支持 反对

使用道具 举报

发表于 2007-5-10 20:13:21 | 显示全部楼层
  1. awk 'BEGIN{FS=""}$5==6&&$10==1&&$11==2&&$12==3&&$16==6&&$17==5{print $0}' ufile>dfile
复制代码


你的“第5位是6,第10-12位是123,第16-17位是65”是“且”的关系还是“或”的关系?
回复 支持 反对

使用道具 举报

发表于 2007-5-10 20:14:06 | 显示全部楼层
  1. awk 'BEGIN{FS=""}$5==6&&$10==1&&$11==2&&$12==3&&$16==6&&$17==5{print $0}' ufile>dfile
复制代码


你的“第5位是6,第10-12位是123,第16-17位是65”是“且”的关系还是“或”的关系?
回复 支持 反对

使用道具 举报

发表于 2007-5-10 20:23:37 | 显示全部楼层
网速问题,多发了两个帖子,请版主将多余的删除。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2007-5-11 09:16:21 | 显示全部楼层
且的关系,谢谢!
首先要选取文件名,然后在该文件中挑出满足条件的纪录,写入新建的文本中。
回复 支持 反对

使用道具 举报

发表于 2007-5-12 00:15:12 | 显示全部楼层
我不知道我第5楼的代码为什么没有满足你的要求。

能把要求说清楚明白,容易理解点吗?

我这里测试怎么好好的,到了你那里就不行了呢?
回复 支持 反对

使用道具 举报

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

本版积分规则

快速回复 返回顶部 返回列表