guozhi
V2EX  ›  问与答

请问如何生成一个内容为 10000 - 99999 的 .txt 文本?

  •  
  •   guozhi · Oct 11, 2014 · 6561 views
    This topic created in 4407 days ago, the information mentioned may be changed or developed.
    10000
    10001
    10002
    10003
    …
    99999

    每行一个,请问如何用最简单的方法生成?
    41 replies  •  2014-10-12 12:34:04 +08:00
    oott123
    oott123
    Oct 11, 2014 via Android❤️4
    1
    Excel 楼主你装了吧?
    拉一下,再另存为 csv ,再改名为 txt 。
    spance
    spance
    Oct 11, 2014❤️1
    2
    ```bash

    for ((i=10000;i<=99999;i++));do echo $i;done > seq.txt

    ```
    celadevra
    celadevra
    Oct 11, 2014❤️1
    3
    GNU 版的 seq:

    $ seq 10000 99999 > seq.txt
    xcv58
    xcv58
    Oct 11, 2014 via Smartisan T1❤️1
    4
    seq +1
    Sunyanzi
    Sunyanzi
    Oct 11, 2014❤️1
    5
    seq ... 我想不到比这个更简单的办法了 ...
    guozhi
    guozhi
    OP
    Oct 11, 2014
    6
    @oott123 这个倒是挺简单,但是速度太慢 :)
    @spance
    @celadevra
    这个看不懂呀,请教如何使用?
    celadevra
    celadevra
    Oct 11, 2014❤️1
    7
    @guozhi 想必你是 Windows 用户?装个 Cygwin,在 Cygwin Terminal 里面输入,默认安装应该就有 seq 这个命令了。如果 Cygwin 装在 C:\Cygwin 下,直接输入上面命令生成的 txt 应该在 C:\Cygwin\home\%用户名%\ 子目录下面。
    learnshare
    learnshare
    Oct 11, 2014
    8
    bash 等脚本语言都很容易吧
    oott123
    oott123
    Oct 11, 2014 via Android
    9
    @guozhi 我猜楼主提出这样的需求,这应该是对你来说最快的方法了吧。
    bash 什么的, seq 什么的,对于你来说太麻烦了呀。
    guozhi
    guozhi
    OP
    Oct 11, 2014
    10
    @celadevra 感谢,完成了:)
    wzxjohn
    wzxjohn
    Oct 11, 2014 via iPhone❤️1
    11
    @celadevra 这是何苦,bat又不是做不到。。。
    BGLL
    BGLL
    Oct 11, 2014❤️1
    12
    一些文本编辑器都有这种功能:


    或者win下用 批处理(新建个文本文件复制下面文字,保存后缀为.bat,然后双击运行):
    for /l %%i in (1,1,1000) do echo %%i>>1.TXT
    zencoding
    zencoding
    Oct 11, 2014 via Android
    13
    有这会儿功夫早弄出来了~~
    BGLL
    BGLL
    Oct 11, 2014
    14
    忘记说了
    括号里前2位填起始数字,后面1位为终止数字。
    批处理开头加入@echo off,关掉回显,速度会快很多。

    @echo off
    for /l %%i in (10000,10000,99999) do echo %%i>>1.TXT
    cxh116
    cxh116
    Oct 11, 2014
    15
    ruby版
    ```
    ruby -e '(10000..99999).each{|a| puts a}' > /tmp/num.txt

    ```
    ToughGuy
    ToughGuy
    Oct 11, 2014
    16
    echo {10000..99999} | tr -s ' ' '\n' >seq.txt
    for ((i=10000;i<=99999;i++)); do echo $i; done >seq.txt
    seq 10000 99999 >seq.txt
    awk 'BEGIN{for (i=10000;i<=99999;i++) print i}' >seq.txt
    python -c 'for i in xrange(10000, 100000): print i' >seq.txt

    哎呀方法太多... -_-!
    feiyuanqiu
    feiyuanqiu
    Oct 11, 2014
    17
    如果手边有浏览器,按F12,然后复制这段
    var str = [], i = 10000; while (i < 100000) { str.push(i++); } document.body.innerHTML = str.join('<br />');

    然后复制粘贴到记事本...当然会比较卡
    workaholic
    workaholic
    Oct 11, 2014
    18
    @1oott123 牛,秒杀n行代码
    aa65535
    aa65535
    Oct 11, 2014❤️1
    19
    @BGLL 这样更高效
    (for /l %%i in (10000,1,99999) do echo %%i)>list.txt
    likaci
    likaci
    Oct 11, 2014
    20
    zxp
    zxp
    Oct 11, 2014
    21
    echo -e {10000..99999}\\n>list.txt
    F2Sky
    F2Sky
    Oct 11, 2014
    22
    我觉得不是 coder 的话,还是 Excel 和 批处理的方法更简单,毕竟就为了完成一个任务,装个工具马上就卸载掉。

    我在 Excel 里拖动获取这种数列比较多,当然都不是太长的

    如果是楼主的要求,我会选择批处理,其它的要安装开发工具的就算了
    devour
    devour
    Oct 11, 2014
    23
    @oott123 excel不是最大65536吗?还得再拉一列?
    lazyphp
    lazyphp
    Oct 11, 2014
    24
    bat或者shell 可以轻松完成
    dychenyi
    dychenyi
    Oct 11, 2014 via Android
    25
    膜拜大神们
    iango
    iango
    Oct 11, 2014
    26
    偶尔就要用一下的页面,有前后续时效率不好。
    下面代码存为.htm,用浏览器打开。
    序列填“10000”,数量填“89999”
    -----------------------------
    <html>
    <head>
    <title> 生成序列 </title>
    <script type="text/javascript">
    function getValue()
    {
    var _vex=document.getElementById("_Iex").value.toString()
    var _vfrom=document.getElementById("_Ifrom").value.toString()
    var _vbody=document.getElementById("_Ibody").value
    var _vsn=document.getElementById("_Isn").value
    var x=document.getElementById("_dbody")
    var vall = ""
    var _i1=Number(_vbody)
    var _i2=Number(_vsn)

    for (i = 0; i < _i2; i++)
    {
    vall= vall +_vex + _i1 + _vfrom + "<br />";
    _i1++;
    }


    x.innerHTML= vall.toString();
    //alert(_vex)
    }
    </script>

    </HEAD>

    <BODY>
    前缀 <INPUT TYPE="text" VALUE="" ID="_Iex" NAME="_Iex"> 后缀<INPUT TYPE="text" VALUE="" ID="_Ifrom" NAME="_Ifrom"><br>
    序列<INPUT TYPE="text" VALUE="0" ID="_Ibody" NAME="_Ibody"> 数量<INPUT TYPE="text" VALUE="10" NAME="_Isn" id="_Isn">
    <INPUT TYPE="button" VALUE="生成" onclick="getValue()">


    <hr>
    <div id="_dbody"></div>
    </BODY>
    </HTML>
    oott123
    oott123
    Oct 11, 2014 via Android
    27
    @devour 那是什么年代的事情了…
    我的 Excel 可以轻松处理 100k+ 的表格啊…
    10iii
    10iii
    Oct 11, 2014
    28
    excel <=2003 确实有65K限制。
    loryyang
    loryyang
    Oct 11, 2014❤️1
    29
    你们这群大牛,不会自己生成一个,给lz传过去吗?或者放到网盘上。。。
    bzw875
    bzw875
    Oct 11, 2014
    30
    javaScript版来了,运行复制到txt文件里就好啦,可惜我大javaScript没有读写文件的爪子
    var result = "";
    for(var i = 10000; i < 100000; i++) {
    var p = i + "<br>";
    result += p;
    }
    document.body.innerHTML = result;
    lujjjh
    lujjjh
    Oct 11, 2014❤️1
    32
    @bzw875

    跟 HTML5 合作就不一样了。

    上 CoffeeScript

    anchor = document.createElement 'a'
    anchor.href = 'data:text/plain;charset=UTF-8,' + [10000..99999].join encodeURIComponent('\r\n')
    anchor.download = 'dict.txt'
    anchor.click()

    不过既然是在 Windows 下,最方便最实惠的方法还是 1L 说的 Excel(如果有 Office)。程序实现感觉没太大的必要,写代码的功夫 Excel 早拖拽出来了。
    popoge
    popoge
    Oct 11, 2014
    33
    很好奇楼主为什么会有这样的需求
    Mutoo
    Mutoo
    Oct 12, 2014
    34
    @popoge 目测是要跑字典
    guozhi
    guozhi
    OP
    Oct 12, 2014
    35
    谢谢楼上各位大牛这么热情啊,已用 seq 完成了。刚睡醒,做了一个不通寻常的梦,好后怕……

    @scg16 谢谢你传网盘 XD
    xcatliu
    xcatliu
    Oct 12, 2014
    36
    @bzw875 用 nodejs 呗

    ```
    (function(fileName) {
    var content = '10000';
    for (var i = 10001; i < 100000; i += 1) {
    content += '\n' + i;
    }
    require('fs').writeFileSync(fileName, content);
    })('seq.txt');
    ```
    canautumn
    canautumn
    Oct 12, 2014
    37
    感觉这个是为了让大家展示一下有多少种方法生成连续序列。我觉得对于非coder来说,最简单的方法是善用google,搜索一下generate sequence online可以找到下边的网址,输入起始和终止,就能下载生成的文本文件了:
    http://textmechanic.com/Generate-List-of-Numbers.html
    canautumn
    canautumn
    Oct 12, 2014❤️1
    38
    虽然搜一个在线工具更简单,不过既然这个帖子已经变成这样了,那我也凑个热闹。
    matlab/octave:dlmwrite('test.txt',10000:99999,'\n')

    @oott123
    @F2Sky
    @lujjjh 另外Excel不需要拖动那么麻烦,在A1输入10000,选中然后去菜单Edit-Fill-Series,选column,Stop栏填99999,就ok了。
    F2Sky
    F2Sky
    Oct 12, 2014
    39
    @canautumn 你用的什么版本啊?我怎么在 Excel 没有找到你说的菜单 (Excel 2010)
    canautumn
    canautumn
    Oct 12, 2014
    40
    @F2Sky Office 2011 mac 用windows版的话,应该在Home 面板的editing里有fill按钮,是一个向下的箭头。mac版也有这个面板,只不过mac版保留了菜单栏。
    F2Sky
    F2Sky
    Oct 12, 2014
    41
    @canautumn

    刚才翻菜单栏,找到了:





    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   5140 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 169ms · UTC 06:37 · PVG 14:37 · LAX 22:37 · JFK 01:37
    ♥ Do have faith in what you're doing.