Chinaunix

标题: awk 的输出格式问题 [打印本页]

作者: ccnaide    时间: 2003-07-21 13:37
标题: awk 的输出格式问题
我现在有一个文件:1.txt
232344434343434      www.chinaunit.com
232232332340003      www.linux.com
我现在awk '{print $1+100}' 1.txt
发觉awk自动用科学记数法给我处理了,显示为2.3e+10,但是我不想得到这种格式,请问我应该如何处理?
作者: carrierye    时间: 2003-07-21 13:48
标题: awk 的输出格式问题
让它用格式显示,比如:
awk '{printf "%20.0f\n",$1+100}'  filename
作者: ccnaide    时间: 2003-07-21 14:02
标题: awk 的输出格式问题
但是自己定义格式的话,那么后面的www.chinaunix.net 我要和原来的一模一样的输出,应该如何做呢?用%5c吗?
$2 应该如何定义呢?
作者: admirer    时间: 2003-07-21 15:33
标题: awk 的输出格式问题
你的数据已经超出了awk能够表示的最大正整数,所以这样不好处理!
作者: ccnaide    时间: 2003-07-21 15:44
标题: awk 的输出格式问题
难道真的不能解决吗?
作者: 夜未眠    时间: 2003-07-21 16:00
标题: awk 的输出格式问题
$ awk '{printf("%.0f %s\n",$1+100,$2)}' 1.txt
232344434343534 www.chinaunit.com
232232332340103 www.linux.com
$
作者: ccnaide    时间: 2003-07-21 16:17
标题: awk 的输出格式问题
谢谢指教,但是
$ awk '{printf("%.0f %s\n",$1+100,$2)}' 1.txt
232344434343534 www.chinaunit.com
232232332340103 www.linux.com

这样做后, 232344434343534 www.chinaunit.com之间的空格和原来不一样了,怎么做才能使空格和原来的一模一样?换句话说,我只想第一列数字增加100,其他列和列与列之间的空格都不发生任何的改变,请再指教!
作者: admirer    时间: 2003-07-21 16:22
标题: awk 的输出格式问题
当然不是!
这样试试看:
  1. awk '{l=length($1);a=substr($1,1,l-4);b=substr($1,l-3,4);printf"%s%d %s\n",a,b+100,$2}'
复制代码

作者: 夜未眠    时间: 2003-07-21 17:05
标题: awk 的输出格式问题
原帖由 "ccnaide" 发表:
谢谢指教,但是
$ awk '{printf("%.0f %s\n",$1+100,$2)}' 1.txt
232344434343534 www.chinaunit.com
232232332340103 www.linux.com

这样做后, 232344434343534 www.chinaunit.com之间的空格和原来不一样了..........
   

  1. $ awk '{printf("%.0f%s\n",$1+100,substr($0,length($1)+1))}' 1.txt
复制代码

作者: deathcult    时间: 2003-07-21 18:37
标题: awk 的输出格式问题
awk '{printf "%.f %s\n",$1+100,$2}' filename
这不就行了么。
作者: admirer    时间: 2003-07-21 23:19
标题: awk 的输出格式问题
原帖由 "deathcult" 发表:
awk '{printf "%.f %s\n",$1+100,$2}' filename
这不就行了么。
   
原来"f"还可以这样用!
果然高!佩服佩服!




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