Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
1 parent
213ac3c
commit 6fcb60e
Showing
1 changed file
with
57 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,57 @@ | ||
# 练习 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。这将有助于你均衡你的指标,专注于你的工作。 | ||
|
||
|
||
## 研究性学习 | ||
|
||
+ 当你制订指标时,你是否发现了异常或令人惊讶的事情? | ||
+ 在开始本课程之前,你的工作预测是什么? | ||
+ 它如何匹配你实际所做的事情? | ||
|
||
## 深入学习 | ||
|
||
在这个练习的视频(付费)中,我会向你展示一个叫做“运行图”的东西。运行图是你希望监视的一些活动的简单图表,向你显示如何随时间变化。人们使用运行图来发现行为的巨大变化,因为它们是既简单又有效的可视化工具。你将在书中使用运行图,因为它们非常简单但非常强大。 |