Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1434817
  • 博文数量: 350
  • 博客积分: 12557
  • 博客等级: 上将
  • 技术积分: 3621
  • 用 户 组: 普通用户
  • 注册时间: 2007-03-22 07:33
文章分类

全部博文(350)

文章存档

2014年(2)

2013年(1)

2012年(15)

2011年(46)

2010年(61)

2009年(80)

2008年(80)

2007年(65)

分类: LINUX

2009-07-14 16:37:03

  刚才老婆交给我一项任务,帮她生成一个文本文件,内容是978711100001-978711130000这样数字,每行一个。接到任务后,首先想到用shell脚本的循环生成,不过对shell还是不太熟悉,没有成功。然后想到可以用VI来完成任务,搜了一下,果然有办法。
  于是vi num.txt 输入:r !seq 978711100001 978711130000,很快生成了数字。。但是科学计数法显示的!显然不满足要求,这怎么办?又想了想,科学计数是大于某位数字后才使用的,现在是后几位是变动的,我只生成后几位,然后在字符串前面增加我要的前几位不完了吗?
  于是重新vi num.txt
    :r !seq 100001 130000
    :1,$s/^/978711/g
    OK,完成任务。
  方法二:使用shell完成
  脚本如下:
 

#!/bin/sh

for ((i=100001;i<=130000;i++))
do
   echo "978711$i">>/tmp/num.txt
done

 
   方法三:使用windows的批处理完成

@ECHO OFF

for /L %%e in (10001,1,30000) do echo 978711%%e >>c:/num.txt

  方法四:使用Excel的填充

   见下面的gif动画,感谢蓝色虫!

 

新增一linux方法,感谢留言的ywlscpl 给我以思路:seq -f %1.f 978711100001 978711130000 >num.txt

阅读(2911) | 评论(2) | 转发(0) |
给主人留下些什么吧!~~

我爱钓鱼2009-07-16 16:46:17

谢谢,我测试了一下,在redhat 8.0上是用的seq -f %1.f 成功的,用%.0f不成功。

ywlscpl2009-07-16 16:07:47

seq -f %.0f 978711100001 978711130000 >num.txt