有什么好方法批量处理文本中的信息?

2014 年 12 月 26 日
 Mizzi

比如批量命名、删除替换其中信息、每行分割成新的文件等等

3020 次点击
所在节点    问与答
17 条回复
Shared
2014 年 12 月 26 日
我不会向你推荐 awk, sed, grep, find 和 xargs 的
Mizzi
2014 年 12 月 26 日
@Shared 想实现每行创建一个新文件,以此行前5位字符命名,有什么方法吗?
frankzeng
2014 年 12 月 26 日
python可满足你的要求
huson
2014 年 12 月 26 日
python +1
Tink
2014 年 12 月 26 日
sed
Tomilay
2014 年 12 月 26 日
Perl
lululau
2014 年 12 月 26 日
简单的 sed/awk,复杂的 Perl
Shared
2014 年 12 月 27 日
@Mizzi awk '{ system("touch "substr($0, 0, 5)".txt") }' input.txt
Shared
2014 年 12 月 27 日
@Mizzi 上面好多人推荐 Python,那来个 Python 一行的:

[open(line[:5] + ".txt", 'a') for line in open("input.txt", 'r').readlines()]
wilsonxyz
2014 年 12 月 27 日
@Shared 几千万条的数据也可以这样子打开吗?
Shared
2014 年 12 月 27 日
@wilsonxyz 请不要讲极端情况,极端情况有别的处理方法
Shared
2014 年 12 月 27 日
@wilsonxyz 另外,awk 的方案对行数无要求
wilsonxyz
2014 年 12 月 27 日
@Shared 我不谈极端情况,我只是请教。
dofine
2014 年 12 月 27 日
awk sed 一般都能满足要求啦
python 更好写也容易懂一点
个人感觉
vivisidea
2014 年 12 月 27 日
@Shared 文件对象本身可以迭代的,.readlines()应该是可以去掉的

@wilsonxyz 千万条数据的情况,我觉得是可以这么处理的,慢慢建就行了阿,首先文件系统里创建千万个文件要能撑住
Mizzi
2014 年 12 月 27 日
@Shared 学到了,感谢大神,另外向上面说的,如果是无上限的数据也可如此处理不会有问题吗?
Shared
2014 年 12 月 27 日
@vivisidea 好的,学到了。


@Mizzi 你需要考虑的是 IO 性能

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

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

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

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

© 2021 V2EX