1
0
mirror of https://github.com/apachecn/lmpythw-zh.git synced 2025-05-31 13:37:42 +00:00
lmpythw-zh/ex9.md
wizardforcel 6fcb60e34f ex9
2017-08-04 11:02:46 +08:00

58 lines
4.1 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 练习 9`sed`
> 原文:[Exercise 9: sed](https://learncodethehardway.org/more-python-book/ex9.html)
> 译者:[飞龙](https://github.com/wizardforcel)
> 协议:[CC BY-NC-SA 4.0](http://creativecommons.org/licenses/by-nc-sa/4.0/)
> 自豪地采用[谷歌翻译](https://translate.google.cn/)
使用这些小型项目来研究你自己是有用的,但让我们来看看你主要关注的主题:
+ 开始工作的启动流程,例如你的文本编辑器,你可以打字打的多好,以及计算机内部发生的其他事情。
+ 心理状态,当你开始工作时,建议将日志作为控制它的一种方式。
+ 工作环境包括你的桌子,照明,椅子和你使用的电脑类型。
+ 身体姿势和健康,以避免在工作时受伤。
在这个练习中我们将采取这一改进计划并进一步跟踪一些指标。你一直在使用小型命令行工具阅读并确定其功能然后花费45分钟来实现一个简单的黑魔法。现在你可以列举你的功能确定优先级然后确定在45分钟内可以完成的功能。事实上你可以回溯目前为止所做的所有项目以及你的更改笔记并计算出这一指标看看你是否在改进。
现在花点时间来回顾你的笔记并大概估算每45分钟的完成的功能的百分比。在纸上绘制他们然后看你的笔记看是否有显著的变化是好还是坏当你改变你的工作方式的时候。然后在这个练习中尝试根据你所做的改变来预测你将做多少工作。你甚至可以尝试将一些障碍添加回你的流程看看它如何影响你的生产力。
> 警告
> 请记住,这是个人指标,而不是与任何人分享的内容。这些几乎不科学,意味着你仅仅在分析你的工作方式中获得一些客观性。它们不是可以描述所有程序员的宏观指标,但是你最好相信,如果经理发现你有这些东西,他们会要求看到它们。然后,他们会要求你的团队中的每个人都开始做这些工作,然后管理层将会使用这些来引起大量的麻烦。将你的实验室笔记看做非常私人的记录,并且从不让任何人看到它。
## 挑战练习
这个练习将比其他练习更复杂,因为我们将要处理更多的正则表达式,并实现一个名为`sed`的工具。通过接受利用正则表达式替换模式串,`sed`工具能够让你改变文本,然后在接收到的每一行中,确定要替换什么。难点可能在于实现`sed`的表达式格式,所以我建议你用两种方法来实现:
Lv1 具有命令行选项,用于最基本的`sed`用法,将一个字符串替换为另一个字符串。
Lv2 在这些命令行选项中启用正则表达式。
Lv3 是实现`sed`表达式格式。
使用`sed`的一个例子是,在文本流中将一个单词更改为另一个单词。如果我想更改`ls`的输出以便使用“author”替换我的名字我可以这样做
```
ls -l | sed -e "s/zedshaw/author/g"
```
然而,`sed`的实力在于使用正则表达式来匹配模式串并替换它们。如果你使用 vim 编辑器,那么你已经熟悉这种语法:
```
ls -l | sed -e"s / Jul [0-9] [0-9] / DATE / g"
```
你应该阅读`man sed`页面但你可能需要进行更多的研究来实现它。我建议你晚上做你的研究然后根据这项研究第二天进行45分钟的 Hack。这将有助于你均衡你的指标专注于你的工作。
## 研究性学习
+ 当你制订指标时,你是否发现了异常或令人惊讶的事情?
+ 在开始本课程之前,你的工作预测是什么?
+ 它如何匹配你实际所做的事情?
## 深入学习
在这个练习的视频(付费)中,我会向你展示一个叫做“运行图”的东西。运行图是你希望监视的一些活动的简单图表,向你显示如何随时间变化。人们使用运行图来发现行为的巨大变化,因为它们是既简单又有效的可视化工具。你将在书中使用运行图,因为它们非常简单但非常强大。