# 练习 8:`cut`
> 原文:[Exercise 8: cut](https://learncodethehardway.org/more-python-book/ex8.html)
> 译者:[飞龙](https://github.com/wizardforcel)
> 协议:[CC BY-NC-SA 4.0](http://creativecommons.org/licenses/by-nc-sa/4.0/)
> 自豪地采用[谷歌翻译](https://translate.google.cn/)
希望你正在深入学习 Python,甚至了解你自己和你的工作方式。在本书的这一部分,通过学习如何优化你的流程,你学到了流程和创造力的一些事情。的确,有阻碍的情况下你不能发挥创造力,但是你应该意识到,改善自己的个人流程的最简单方法是,观察你自己的工作。只做练习还不够。你需要留意你的个人工作方式,并努力改善它。
当你改进启动流程时,你可能会发现,需要几种不同的启动方法,来处理不同类型的项目。当我使用与这些命令行小工具类似的软件时,我可以从 Hack 代码来开始。当我需要使用 GUI 工作时,我发现我需要画出 UI,实现一个假版本,然后使其正常工作。当你继续阅读这本书的时候,你会学到两种工作方式并实践这个过程。
在这个练习中,我希望你专注于你的身体健康和行为。为了试图做它们的项目,程序员经常破坏他们的身体。工作感觉好像不应该对你造成伤害。你只是整天坐在桌子旁边,不需要砍伐树木,或者抓捕城市的罪犯。事实是,任何长时间作者,并且做有压力的事情的工作,可能破坏你的身体。为了避免这样,工作时要跟踪以下事情:
+ 你的坐姿标准吗?挺直的姿势并不是很好,但是驼背也不是。让你的身体放松,并抬起头。
+ 你把你的肩膀拉到你的耳朵吗?试着把它们放下来。
+ 你绷紧手腕并把它们放在桌子上吗?尝试将它们悬在键盘上方,并保持它们不要太松,不要太紧。
+ 你的头部在正前方并且是放松的吗?还是你把它拉紧,偏向一边来看另一台显示器?
+ 你的椅子舒适吗?
+ 你休息吗?45分钟是你停下来休息的最长时间。
+ 你要去洗手间吗?我是认真的。如果你必须去,赶紧起来。最糟糕的是坐在那里拖着它。
还有更多,但这些主要的。我认为很多程序员觉得,如果他们离开他们的电脑,它们会消失甚至爆炸。电脑会耐心等待你返回,休息让你的大脑有机会以不同的方式处理这个问题。
你还应考虑打开电脑的网络摄像头并记录自己的工作。你可能会认为你不会懒散,但随后在激烈的战斗中,你会对你的身体做一些奇怪的事情,而不知道它。为你自己记录这个会话,然后寻找任何导致你的紧张,麻烦,背痛或只是奇怪的东西。
## 挑战练习
在这个练习中,你要实现`cut`工具。我真的很喜欢`cut`,因为它使我看起来像一个 Unix 术士,但是它真正做的是剪裁文本流。这是您可能会做的,最简单的小型文本处理工具,而且仍然实用。为了使用它,您需要另一个工具来为其提供一些文字,所以我们可以这样做:
```
ls -l | cut -d ' ' -f 5-7
```
这可能会向你提供乱码,但是在大多数系统上,它应该列出每个文件的用户名和组。`cut`命令接受一些选项,它设定类型的分隔符(`-d ' '`为一个空格字符),然后是要提取的字段列表(这里是`5-7`)。我们使用`ls -l`命令给它一些东西来剪裁。
这就完成了,所以阅读`man`的`cut`页面,看看你可以实现多少,同时检查你在工作时如何保持身体。
## 研究性学习
+ Unicode 对您的实现有什么影响?
## 深入学习
记住你的身体是你的一部分,你的头脑是重要的想法是完全错误的。将你的身体看做无用的垃圾,只能使你的大脑工作效率较低,让你很长一段时间都不舒服。我建议您尽可能频繁地进行一些身体健康相关的活动。它可以是瑜伽,舞蹈,散步,远足或去健身房。任何保持身体健康的事情,让您的头脑无干扰地工作。
以这种方式思考:如果你的身体受到伤害,不断感觉不适,或者因不当使用而疲劳,那么你的大脑必须浪费周期来跟踪它并告诉你。如果你能保持身体良好,维护机器,那么你的大脑就不用担心它了。
最后,如果你的身体不像其它人那样好,那么尽力而为吧。没有人告诉你,你必须拥有我的身体来成为程序员。有关编码的重要事情之一,是任何人都可以做到它,即使他们的身体表现不能做许多其他事情。关键是不要让编程使你的情况更糟。请保持健康。
- 笨办法学 Python · 续 中文版
- 引言
- 第一部分:预备知识
- 练习 0:起步
- 练习 1:流程
- 练习 2:创造力
- 练习 3:质量
- 第二部分:简单的黑魔法
- 练习 4:处理命令行参数
- 练习 5:cat
- 练习 6:find
- 练习 7:grep
- 练习 8:cut
- 练习 9:sed
- 练习 10:sort
- 练习 11:uniq
- 练习 12:复习
- 第三部分:数据结构
- 练习 13:单链表
- 练习 14:双链表
- 练习 15:栈和队列
- 练习 16:冒泡、快速和归并排序
- 练习 17:字典
- 练习 18:性能测量
- 练习 19:改善性能
- 练习 20:二叉搜索树
- 练习 21:二分搜索
- 练习 22:后缀数组
- 练习 23:三叉搜索树
- 练习 24:URL 快速路由
- 第四部分:进阶项目
- 练习 25:xargs
- 练习 26:hexdump
- 练习 27:tr
- 练习 28:sh
- 练习 29:diff和patch
- 第五部分:文本解析
- 练习 30:有限状态机
- 练习 31:正则表达式
- 练习 32:扫描器
- 练习 33:解析器
- 练习 34:分析器
- 练习 35:解释器
- 练习 36:简单的计算器
- 练习 37:小型 BASIC
- 第六部分:SQL 和对象关系映射
- 练习 38:SQL 简介
- 练习 39:SQL 创建
- 练习 40:SQL 读取
- 练习 41:SQL 更新
- 练习 42:SQL 删除
- 练习 43:SQL 管理
- 练习 44:使用 Python 的数据库 API
- 练习 45:创建 ORM
- 第七部分:大作业
- 练习 46:blog
- 练习 47:bc
- 练习 48:ed
- 练习 49:sed
- 练习 50:vi
- 练习 51:lessweb
- 练习 52:moreweb