zoukankan      html  css  js  c++  java
  • 2.1《想成为黑客,不知道这些命令行可不行》(Learn Enough Command Line to Be Dangerous)——重定向文件和添加文件

    回忆第一章节的内容,我们用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命令可以有多个参数。
  • 相关阅读:
    HDU 6071
    HDU 6073
    HDU 2124 Repair the Wall(贪心)
    HDU 2037 今年暑假不AC(贪心)
    HDU 1257 最少拦截系统(贪心)
    HDU 1789 Doing Homework again(贪心)
    HDU 1009 FatMouse' Trade(贪心)
    HDU 2216 Game III(BFS)
    HDU 1509 Windows Message Queue(队列)
    HDU 1081 To The Max(动态规划)
  • 原文地址:https://www.cnblogs.com/AliceX-J/p/8521666.html
Copyright © 2011-2022 走看看