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

2014-10-11 14:44:48 +08:00
 guozhi
10000
10001
10002
10003

99999

每行一个,请问如何用最简单的方法生成?
5512 次点击
所在节点    问与答
41 条回复
zxp
2014-10-11 16:18:08 +08:00
echo -e {10000..99999}\\n>list.txt
F2Sky
2014-10-11 16:20:07 +08:00
我觉得不是 coder 的话,还是 Excel 和 批处理的方法更简单,毕竟就为了完成一个任务,装个工具马上就卸载掉。

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

如果是楼主的要求,我会选择批处理,其它的要安装开发工具的就算了
devour
2014-10-11 16:50:02 +08:00
@oott123 excel不是最大65536吗?还得再拉一列?
lazyphp
2014-10-11 16:53:02 +08:00
bat或者shell 可以轻松完成
dychenyi
2014-10-11 16:55:46 +08:00
膜拜大神们
iango
2014-10-11 17:04:12 +08:00
偶尔就要用一下的页面,有前后续时效率不好。
下面代码存为.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
2014-10-11 17:12:06 +08:00
@devour 那是什么年代的事情了…
我的 Excel 可以轻松处理 100k+ 的表格啊…
10iii
2014-10-11 17:52:38 +08:00
excel <=2003 确实有65K限制。
loryyang
2014-10-11 18:05:05 +08:00
你们这群大牛,不会自己生成一个,给lz传过去吗?或者放到网盘上。。。
bzw875
2014-10-11 19:11:00 +08:00
javaScript版来了,运行复制到txt文件里就好啦,可惜我大javaScript没有读写文件的爪子
var result = "";
for(var i = 10000; i < 100000; i++) {
var p = i + "<br>";
result += p;
}
document.body.innerHTML = result;
scg16
2014-10-11 19:15:15 +08:00
lujjjh
2014-10-11 22:34:20 +08:00
@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
2014-10-11 23:26:01 +08:00
很好奇楼主为什么会有这样的需求
Mutoo
2014-10-12 01:10:09 +08:00
@popoge 目测是要跑字典
guozhi
2014-10-12 02:38:15 +08:00
谢谢楼上各位大牛这么热情啊,已用 seq 完成了。刚睡醒,做了一个不通寻常的梦,好后怕……

@scg16 谢谢你传网盘 XD
xcatliu
2014-10-12 09:45:05 +08:00
@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
2014-10-12 11:29:21 +08:00
感觉这个是为了让大家展示一下有多少种方法生成连续序列。我觉得对于非coder来说,最简单的方法是善用google,搜索一下generate sequence online可以找到下边的网址,输入起始和终止,就能下载生成的文本文件了:
http://textmechanic.com/Generate-List-of-Numbers.html
canautumn
2014-10-12 11:53:12 +08:00
虽然搜一个在线工具更简单,不过既然这个帖子已经变成这样了,那我也凑个热闹。
matlab/octave:dlmwrite('test.txt',10000:99999,'\n')

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

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/138301

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX