用 Ruby 做文本处理:-) http://rubylution.herokuapp.com/topics/7
提个醒:楼主发的链接,虽然是 Dave Thomas 写的 (我的偶像), 不过大把的错误以及不好的习惯。典型的,单行 Ruby 脚本应该总是使用 ARGF + 文件名 的方式,而不是丑陋的 STDIN + < 文件名的方式。
无知者无畏,事实上在看 Agile 提供的原书代码中,我就深有体会,大神的很多编码风格不是很赞同,而且某些习惯的确有问题。例如超级大段的文本,不用 heredoc, 非要用丑陋的%{ ... }. 太多了,
awk 不熟,只会最简单的用法,sed 因为编辑器的缘故专门研究过,不过说实话,听丑陋,不过我还挺喜欢用。哈哈 , 正如 hooopo 所说,你觉得 Ruby 里面的$之流很丑陋,我觉得可能是你用 linux 少一些。事实上因为我使用 Ruby 之前,有专门学习 linux 的经历,所以 Ruby 中的所有$类型变量,给我的感觉就是俩字亲切_, 而且,几乎记住所有的这些特殊符号,对我来说完全没有任何压力,你有没有想过为什么后面偏偏要是那个字符?而不是其他字符?只有了解 linux 之后,你绝对会有自己的答案。而且使用这些特殊符号,也会让你编写的代码简练很多。
还有就是,很多人一提起$?之类的符号,都会说:这些是从 Perl 那里集成过来的丑陋的部分,应该被抛弃。 事实上,有没有考虑过为什么 Perl 这门优秀的字符串处理语言,定义这么多奇怪的符号?因为 Perl 来自于 linux(我猜的,其实我根本没用过 Perl), 好吧,我承认,从 Windows 过来的程序员,肯定会觉得这些符号不可理喻,丑陋,不过还是那句话,之所以有这种感觉不怪 Perl, 因为 Perl 也是来源自 Linux, 只能怪你不了解 linux, 这才是本质原因。
不过我不排除个人习惯问题。呵呵,你既然熟悉 awk, sed. 还觉得这些符号丑陋,那就是习惯问题。