Chinaunix

标题: 请教一个工作中遇到的问题 [打印本页]

作者: wfyvfhpwxf    时间: 2010-10-20 14:52
标题: 请教一个工作中遇到的问题
有一个文本文件list1.txt,内容如下:
30022 30024
40044 40045
20011 20011

要求利用Linux命令处理后生成文件list2.txt,内容如下:
30022
30023
30024
40044
40045
20011

  简要说明:list1.txt为现有文件,该文件有两个字段,$1和$2,当$1<$2时,输出$1

、$2、$1和$2之间的数字;当$1=$2时,输出$1或$2都可以;以下是我试着写的一条命令

,由于能力有限,没能实现想要的结果,还请高手指点一二,小弟在这先谢谢了!

awk '{for (i=1;i<=NR;i++)
       if ($1<$2) {print $1;$1=$1+1} else {print $2}
     }' list1.txt >> list2.txt
作者: 一路征程一路笑    时间: 2010-10-20 16:34
提示: 作者被禁止或删除 内容自动屏蔽
作者: 一路征程一路笑    时间: 2010-10-20 16:34
提示: 作者被禁止或删除 内容自动屏蔽
作者: wfyvfhpwxf    时间: 2010-10-20 16:41
谢谢你的回复。希望以后经常沟通。
作者: wfyvfhpwxf    时间: 2010-10-20 16:56
还得麻烦你一下,上边的发的数据只是样例,在我这执行你写的命令行后,出现这样一个情况,就是$1和$2之间有数据时,也就是$2比$1大1以上,生成的list2.txt文件中,$1和$2之间有数据显示如下:
4.60031e+14
4.60031e+14
4.60031e+14
4.60031e+14
4.60031e+14
4.60031e+14

怀疑是我原始数据格式的问题,请问如何解决?
作者: 一路征程一路笑    时间: 2010-10-20 16:59
提示: 作者被禁止或删除 内容自动屏蔽
作者: wfyvfhpwxf    时间: 2010-10-20 17:04
原始数文件确实不小,但这和文件大小也有关系吗?这边是我粘的部分数据:
460030913109705 460030913109706
460030973100705 460030973100705
460030913109409 460030913109412
460030913109414 460030913109416
作者: 一路征程一路笑    时间: 2010-10-20 17:15
提示: 作者被禁止或删除 内容自动屏蔽
作者: 一路征程一路笑    时间: 2010-10-20 17:16
提示: 作者被禁止或删除 内容自动屏蔽
作者: wfyvfhpwxf    时间: 2010-10-20 17:20
以下边这行为例:
460030913109414 460030913109416
输出后能正常显示460030913109414和460030913109416,但他们之前的数据460030913109415显示就这4.60031e+14这样了,真是怪了。
作者: 一路征程一路笑    时间: 2010-10-20 17:25
提示: 作者被禁止或删除 内容自动屏蔽
作者: wfyvfhpwxf    时间: 2010-10-20 17:25
好的,谢谢,我再研究研究吧。




欢迎光临 Chinaunix (http://bbs.chinaunix.net/) Powered by Discuz! X3.2