回忆第一章节的内容,我们用echo命令输出莎士比亚的第一首十四行诗的第一行(Listing 6):

$ echo "From fairest creatures we desire increase,"
From fairest creatures we desire increase,

我们现在的任务是创建一个包含此内容的文件。即使没有文本编辑器便捷,但还是可以使用重定向操作符 >:

$ echo "From fairest creatures we desire increase," > sonnet_1.txt

(你可以使用向上箭头找到之前的命令,这样比重新输入更好。)这里右尖括号>echo的输出内容重定向到sonnet_1.txt文件里。

怎么才算是重定向内容成功了呢?我们将在第三章节中学习更多高级的命令行工具来检查文件,但现在暂时使用cat命令,它可以简单地将文件内容输出到屏幕上:

$ cat sonnet_1.txt
From fairest creatures we desire increase,

cat这个名字是[连接(concatenate)](http://www.dictionary.com/browse/concatenate)的简写,从名字也能看出是用于组合多个文件内容,但是上面的用法(即单独将单个文件内容显示到屏幕上)是极常见的。试想cat用一个"快而脏"的方式显示一个特殊文件内容。(插图14)

插图14: 用`cat`查看文件

为了添加这首十四行诗(现代说法)的第二行到文件中,我们可以像下面这样使用操作符>>:

$ echo "That thereby beauty's Rose might never die," >> sonnet_1.txt

这仅仅是将这行添加到指定文件的末尾。老规矩,我们来看看使用cat的结果:

$ cat sonnet_1.txt
From fairest creatures we desire increase,
That thereby beauty's Rose might never die,

(这行命令,我希望你只用了两次向上箭头,而不是又重新输入,如果真是这样,那毫无疑问你已经掌握了之前的学习内容。) 以上展示了预期右尖括号>>添加字符串并输出到sonnet_1.txt文件中的结果。

现代对十四行诗的处理,有时会将玫瑰改为玫瑰花(从而掩盖了可能的含义),而我们也可以调用两个echo创建第二个文件:

$ echo "From fairest creatures we desire increase," > sonnet_1_lower_case.txt
$ echo "That thereby beauty's rose might never die," >> sonnet_1_lower_case.txt

为了便于比较两个相似但不相同的文件,Unix系统有个非常有用的命令diff

$ diff sonnet_1.txt sonnet_1_lower_case.txt
< That thereby beauty's Rose might never die,
---
> That thereby beauty's rose might never die,

当谈及电脑文件时,diff通常既是个名词(这些文件间的差别)也是个动词(你应该比较两个文件的差异,看什么被改变了)。又如许多技术术语里提到的,这些说法有时候会融入到常用语中,例如''比较现有想法和过去的文化差异,看能从中学到什么".

练习

在每个练习之后,使用cat命令验证操作是否成功。

  1. 使用echo>,创建文件line_1.txtline_2.txt分别包含十四行诗的第一和第二行。

    2.通过先重定向line_1.txt的内容,再添加line_2.txt文件内容,复制原来的sonnet_1.txt文件(包含十四行诗的前两行)。并把新文件命名为sonnet_1_copy.txt,使用diff命令确认它是否与sonnet_1.txt文件相同。备注:当两个文件没有不同之处时,diff什么也不输出。

    3.使用cat以相反的顺序使用一个命令组合line_1.txtline_2.txt文件内容,并将内容产出到sonnet_1_reversed.txt文件中。备注:cat命令可以有多个参数。

最新文章

  1. Git 账户认证的一些问题
  2. kibana 搜索提示挡住输入框
  3. cassandra安装
  4. 开发之UI篇
  5. OB函数
  6. hdu.1226.超级密码(bfs)
  7. python自动化之装饰器
  8. Jquery局部刷新小案列
  9. iOS:FFmpeg视频播放和直播框架
  10. Generic泛型
  11. JDK1.5新特性(六)&hellip;&hellip;Generics
  12. (Problem 74)Digit factorial chains
  13. 3Sum探讨(Java)
  14. python中的迭代器&amp;&amp;生成器&amp;&amp;装饰器
  15. 列表(list)之三 -如何较为均匀的将任意字符串按指定组数分组,方差最少
  16. 盘点一下Github上开源的Java面试/学习相关的仓库,看完弄懂薪资至少增加10k
  17. 任意activity作为启动页
  18. 卸载时候出现: windows installer 程序有问题。此安装需要的dll不能运行 的一个解决方法
  19. mysql 性能测试工具 mysqlslap
  20. CXF实战之拦截器Interceptor(四)

热门文章

  1. H5音乐播放器【歌单列表】
  2. 从零开始学习html(九)CSS的继承、层叠和特殊性
  3. MySQL数据库图文安装详解及相关问题
  4. Fedora16的双显卡切换问题
  5. 七夕——来自google的一点轻松
  6. Expo大作战(十一)--expo中的预加载和缓存资产(Preloading &amp; Caching Assets),expo中的图标 (Icon)
  7. [我的阿里云服务器] —— WordPress Permalink Settings
  8. tomcat上传内容报错
  9. python基础知识回顾之列表
  10. Jenkins 基于 Docker git JAVA CI/CD