【发布时间】:2016-08-08 16:01:08
【问题描述】:
当我在sed中构造一个复杂的操作时,我经常从
cat infile | sed 'expression1' | sed 'expr2' ...
然后优化成
cat infile | sed 'expr1;expr2;expr3' | sed 'expr4' | sed 'expr5;expr6' ...
有哪些准则可以将表达式与分号组合成一个命令?
到目前为止,我只是临时组合s///'s,而不是组合//d's。
(优化是为了运行几千万次。没错,就是measurably faster。)
(在此处而不是在 superuser.com 上发布,因为关于 sed 的问题要少 20 倍。)
【问题讨论】:
-
wrt
When I construct a complicated operation in sed- 不要那样做! sed 用于在单个行上进行简单替换,仅此而已。对于其他任何事情,您都应该使用 awk。结果将比一组复杂的 sed 操作更清晰、更快、更便携、更健壮、更易于维护并且在其他方面都更好。