• linux(六)之文本操作


    接下来我们一起来看一下再linux中怎么去对文本进行操作的

    一、文本文件

    既然要操作文本,所以我们要对文本有一个了解,那什么是文本文件呢。

    文本文件是一种由若干行字符构成的计算机文件。文本文件存在于计算机文件系统中。通常,通过在文本文件最后一行后放置文件结束标志来

    文本文件通常有系统配置文件,网页,程序源代码等等

    二、文本文件的浏览

    2.1、cat   

      2.2.1、cat的基本介绍

      1)命令格式:cat filename(s)

      2)命令说明:将文件的内容显示到屏幕上

      3)将文件内容进行重定向到其他文件或者设备中。例如:cat /etc/passwd > a.txt

      4)拓展

    命令格式:cat /etc/passwd | awk -F: '{print $1 "	" $6}' | sort > ~/userinfo
    
      命令说明:
      awk:处理文字程序,以行为单位来处理文字
           -F指定分隔符
              注意:-F和分隔符之间没有空格
               '{print }':打印语句的固定格式
                 $1 "	" $6
                  $1:分割后的第1个部分
                  $6:分割后的第6个部分
                  	:制表符
                    
    :换行符
                 :续行符
                 sort:排序 ASCII码进行排序
                      a:97
                      A:65

      2.2.2、举例

      cat可以同时显示多个文件到屏幕中

     cat /etc/passwd     /etc/group

      将多个文件拼接成一个大的文件

    cat /etc/passwd /etc/group > cat.txt

      2.2.3、清空文件的方法 

       1)cat   /dev/null > cat.txt

        /dev/null :unix中的黑洞文件。放不进去东西,拿不出来东西。

        作用:用来清空文件 

       2)> cat.txt

         :  代表空操作

    2.2、more

    命令格式:more filename(s)

    命令说明:显示文件内容到屏幕上,但是一屏内容满了之后会暂停下来。此时可以通过其他功能键进行查看。

    2.3、head

    命令格式:head [-n] filename(s)

    命令说明:显示某个文件的前n行,如果没有选项-n(n是一个具体的数值),则默认显示前10行

    2.4、tail命令

    具有和head命令相类似的功能,不同的是从显示某个文件尾部的行。

    举例:

    显示/etc/passwd文件的倒数第五行到倒数第十行的内容

    tail -10 /etc/passwd | head -5

    2.5、sort

    读取文件中的内容,按行排序。

    读取管道中的内容,按行排序。

    可以加选项“-u”,表示重复行(相同并且相邻则视为重复行)只显示一次。

    举例:

    提取系统中所有的用户名,按用户名(行)排序。

    cat /etc/passwd | awk -F: '{print $1}' | sort -u

    2.6、uniq

    清除文件或者管道中的重复行

    注意:这里是指把文件中的重复行删除,只是我们查看的时候,把重复行给去掉了。

    2.7、diff

    比较并显示两个文件的不同之处

    命令格式:diff [-u] filename1 filename2

    //file1.txt
    I need to buy apples.
    I need to run the laundry.
    I need to wash the dog.
    I need to get the car detailed.
    
    //file2.txt
    I need to buy apples.
    I need to do the laundry.
    I need to wash the car.
    I need to get the dog detailed.
    
    我们使用diff比较他们的不同:
    diff file1.txt file2.txt
    
    输出如下结果:
    2,4c2,4
    < I need to run the laundry.
    < I need to wash the dog.
    < I need to get the car detailed.
    ---
    > I need to do the laundry.
    > I need to wash the car.
    > I need to get the dog detailed.

    分析:

    我们来说明一下该输出结果的含义,要明白diff比较结果的含义,我们必须牢记一点,diff描述两个文件不同的方式是告诉我们怎么样改变第一个文件之后与第二个文件匹配。我们看看上面的比较结果中的第一行 2,4c2,4 前面的数字2,4表示第一个文件中的行,中间有一个字母c表示需要在第一个文件上做的操作(a=add,c=change,d=delete),后面的数字2,4表示第二个文件中的行。

    2,4c2,4 的含义是:第一个文件中的第[2,4]行(注意这是一个闭合区间,包括第2行和第4行)需要做出修改才能与第二个文件中的[2,4]行相匹配。
    接下来的内容则告诉我们需要修改的地方,前面带 < 的部分表示左边文件的第[2,4]行的内容,而带> 的部分表示右边文件的第[2,4]行的内容,中间的 --- 则是两个文件内容的分隔符号。

    2.8、echo

    显示命令后面的内容到屏幕上

    2.9、script

    录屏命令,该命令会执行之后会将控制台上所有从该命令之后的输入和输入全部显示到指定的文件中。

    可以加选项“-a”,表示追加到文件中

    录屏结束之后使用“exit”命令或者ctrl+d退出录屏。

     

  • 相关阅读:
    List<int>转化为逗号链接的字符串
    分页的总页数算法
    高性能SQLServer分页语句
    webconfig中的&符号问题解决
    检测SQLServer复制订阅进度
    jQuery自定义数组操作类(类似于List集合的增删改查)
    解决jquery绑定click事件出现点击一次执行两次问题
    IdentityServer4登陆中心
    AES加密解密通用版Object-C / C# / JAVA
    T-SQL 基本语法
  • 原文地址:https://www.cnblogs.com/zhangyinhua/p/7455600.html
Copyright © 2020-2023  润新知