Ruby Ruby One-Liners

hooopo · 2012年04月24日 · 最后由 zw963 回复于 2012年05月13日 · 3553 次阅读

用 Ruby 做文本处理:-) http://rubylution.herokuapp.com/topics/7

💎

1 楼的帖子挺强大

才发现原来是 Dave Thomas 大神友情奉献 语法看起来比 awk 友善很多

太喜欢这个帖子了~~ 楼主总是分享一些有趣的东西!平常我就用 ruby 处理文本挺多的 (不过也仅限于文本,离取代 bash shell 还差很多).

很有趣,不过感觉还是awksed写起来更顺手。 感觉$_ 很丑。

#4 楼 @zw963 最近在看《Ruby 系统管理实践》,又学到很多 Rails 里永远接触不到的 Ruby 用法....过几天总结一下:-)

#5 楼 @camel 这些变量是从 Perl 那继承过来的,如果没有 Perl 语言的经验会觉得别扭。 不过作为胶水语言,ruby 可以调用 awk 和 sed,grep 等,可读性可写性比 shell 强很多,又可以利用 Ruby 自身特有的功能和丰富的 gems

提个醒:楼主发的链接,虽然是 Dave Thomas 写的 (我的偶像), 不过大把的错误以及不好的习惯。典型的,单行 Ruby 脚本应该总是使用 ARGF + 文件名 的方式,而不是丑陋的 STDIN + < 文件名的方式。

无知者无畏,事实上在看 Agile 提供的原书代码中,我就深有体会,大神的很多编码风格不是很赞同,而且某些习惯的确有问题。例如超级大段的文本,不用 heredoc, 非要用丑陋的%{ ... }. 太多了,

#5 楼 @camel

awk 不熟,只会最简单的用法,sed 因为编辑器的缘故专门研究过,不过说实话,听丑陋,不过我还挺喜欢用。哈哈 , 正如 hooopo 所说,你觉得 Ruby 里面的$之流很丑陋,我觉得可能是你用 linux 少一些。事实上因为我使用 Ruby 之前,有专门学习 linux 的经历,所以 Ruby 中的所有$类型变量,给我的感觉就是俩字亲切_, 而且,几乎记住所有的这些特殊符号,对我来说完全没有任何压力,你有没有想过为什么后面偏偏要是那个字符?而不是其他字符?只有了解 linux 之后,你绝对会有自己的答案。而且使用这些特殊符号,也会让你编写的代码简练很多。

#5 楼 @camel

还有就是,很多人一提起$?之类的符号,都会说:这些是从 Perl 那里集成过来的丑陋的部分,应该被抛弃。 事实上,有没有考虑过为什么 Perl 这门优秀的字符串处理语言,定义这么多奇怪的符号?因为 Perl 来自于 linux(我猜的,其实我根本没用过 Perl), 好吧,我承认,从 Windows 过来的程序员,肯定会觉得这些符号不可理喻,丑陋,不过还是那句话,之所以有这种感觉不怪 Perl, 因为 Perl 也是来源自 Linux, 只能怪你不了解 linux, 这才是本质原因。

不过我不排除个人习惯问题。呵呵,你既然熟悉 awk, sed. 还觉得这些符号丑陋,那就是习惯问题。

#6 楼 @hooopo

期待学习你的帖子。

需要 登录 后方可回复, 如果你还没有账号请 注册新账号