天天看点

笨办法学 Python · 续 练习 9:`sed`练习 9:sed

练习 9:

sed

原文: Exercise 9: sed 译者: 飞龙 协议: CC BY-NC-SA 4.0 自豪地采用 谷歌翻译

使用这些小型项目来研究你自己是有用的,但让我们来看看你主要关注的主题:

  • 开始工作的启动流程,例如你的文本编辑器,你可以打字打的多好,以及计算机内部发生的其他事情。
  • 心理状态,当你开始工作时,建议将日志作为控制它的一种方式。
  • 工作环境包括你的桌子,照明,椅子和你使用的电脑类型。
  • 身体姿势和健康,以避免在工作时受伤。

在这个练习中,我们将采取这一改进计划,并进一步跟踪一些指标。你一直在使用小型命令行工具,阅读并确定其功能,然后花费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。这将有助于你均衡你的指标,专注于你的工作。

研究性学习

  • 当你制订指标时,你是否发现了异常或令人惊讶的事情?
  • 在开始本课程之前,你的工作预测是什么?
  • 它如何匹配你实际所做的事情?

深入学习

在这个练习的视频(付费)中,我会向你展示一个叫做“运行图”的东西。运行图是你希望监视的一些活动的简单图表,向你显示如何随时间变化。人们使用运行图来发现行为的巨大变化,因为它们是既简单又有效的可视化工具。你将在书中使用运行图,因为它们非常简单但非常强大。