文本处理工具详解

简介:

一、cat命令

    cat:文件查看

    格式:cat [OPTION]...[FILE]..

    OPTION:

        -E:显示行结束符$;

        -n: 对显示出的每一行进行编号;

        -A:显示所有控制符;

        -b:非空行编号;

        -s:压缩连续的空行成一行;

        -T显示制表符;

    tac:逆向显示文件内容,与cat命令相反;

    rev:行文件内容逆向显示;


            eg1:显示所有控制符

                wKiom1mJX-fCO_8MAAAlpw965Nc540.png-wh_50

            eg2:显示制表符

                wKioL1mJYMeTd9gHAAAhIZI-hYI344.png-wh_50

            eg3:显示行号

                wKiom1mJYS6jkU3SAAAtlhTuE-8181.png-wh_50

            eg4:压缩空行成一行

                wKiom1mJYmqSuRftAABNCSmkmGw884.png-wh_50

            eg5:非空行编号

                wKiom1mJYsGjkz0lAAArGb4EDCQ661.png-wh_50

            eg6:tac:逆向显示文件内容

                wKioL1mJY9fx6JGFAAAyx0pZqbM896.png-wh_50

            eg7:逆向显示行文件内容

                wKiom1mJZCqDPsSgAAAzuev59CA166.png-wh_50

                

二、more命令

    more:分页查看文件内容

    格式:more [OPTIONS...] [FILE]...

    OPTIONS:

        -d:显示翻页及退出提示;

三、less命令

    less:分页查看文件内容

        查看时有用的命令包括:

            /文本:搜索文本

            n:向下匹配

            N:向上匹配

四、head命令

    head:显示文本前几行内容(默认显示前10行)

    格式:head [OPTION]... [FILE]...

    OPTION:

        -c #: 指定获取前#字节

        -n #: 指定获取前#行

        -#: 指定行数

五、tail命令

    tail:显示文本后几行内容(默认显示后10行)

    格式:tail [OPTION]... [FILE]...

    OPTION:

        -c #: 指定获取后#字节

        -n #: 指定获取后#行

        -#:指定行数

        -f: 跟踪显示文件新追加的内容,常用日志监控         

1
             eg: tail  -n0 -f filename &:后台运行,既能查看内容又能做别的事

六、cut命令

    cut:按列切割文本内容

    格式:cut [OPTION]... [FILE]...

    OPTION:

        -d DELIMITER: 指明分隔符,默认tab

        -f FILEDS:

            #: 第#个字段

            #,#[,#]:离散的多个字段,例如1,3,6

            #-#:连续的多个字段, 例如1-6 混合使用:1-3,7

        -c 按字符切割

        --output-delimiter=STRING指定输出分隔符       

1
2
3
4
5
6
7
8
9
10
11
               eg1:
                 [root@centos7 testdir] # cut -d: -f1 /etc/passwd
                     ##以冒号做分隔符,取文件第一列,也就是用户名;
                     
             eg2:
                 [root@centos7 testdir] # cut -d: -f1,3 /etc/passwd
                     ##以冒号做分隔符,取文件第一、第三列,我就是用户名和UID;
                     
             eg3:
                 [root@centos7 testdir] # cut -d: -f1,3,5-7 /etc/passwd
                     ###以冒号做分隔符,取用户名、UID和shell类型;

            eg4:

                wKioL1mJdgWzl8Q_AAA6zr4vhXc619.png-wh_50

            eg5:

                wKiom1mJdr7CKX0IAABICKexy0I034.png-wh_50

七、paste命令

    paste:合并两个文件同行号的列到一行

    格式:paste [OPTION]... [FILE]...

    OPTION:

        -d 分隔符:指定分隔符,默认用TAB

        -s : 所有行合成一行显示

            paste f1 f2

            paste -s f1 f2


            eg1:

                wKiom1mJgHuQxzRZAABg1-p7FZs407.png-wh_50

            eg2:

                wKiom1mJgO6RPhxqAAAnm2i7G8k949.png-wh_50

            eg3:

                wKioL1mJgUmBliw1AAAlDY_7ID8150.png-wh_50

八、wc命令

    wc:字符统计(默认显示行数、单词数、字节数)

    格式:wc [OPTION]... [FILE]...

    OPTION:

        -l:统计行数

        -w:统计单词个数

        -c:统计字节总数

        -m:统计字符总数

九、sort命令

    sort:文本排序(不改变原始文件)

    格式:sort [OPTION] file

    OPTION:

        -r 执行反方向(由上至下)整理 

        -n 执行按数字大小整理 

        -f 选项忽略(fold)字符串中的字符大小写

        -u 选项(独特,unique)删除输出中的重复行

        -t  c选项使用c做为字段界定符

        -k  X选项按照使用c字符分隔的X列来整理能够使用多次           

1
2
3
4
5
6
7
              eg1:
                 [root@centos7 testdir] # sort -t: -k 3 -n /etc/passwd
                     ##以冒号做分隔符,取第三列按数字大小进行正向排序
                     
             eg2:
                 [root@centos7 testdir] # sort -t: -k 3 -nr /etc/passwd
                     ##以冒号做分隔符,取第三列按数字大小进行逆向排序

十、uniq命令

    uniq命令:从输入中删除重复前后相接的行 

    格式:uniq [OPTION]... [FILE]...

    OPTION:

        -c: 显示每行重复出现的次数

        -d: 仅显示重复过的行

        -u: 仅显示不曾重复的行

        注:连续且完全相同方为重复 

   常和sort 命令一起配合使用:sort  userlist.txt  |  uniq-c


            eg1(vim /uniq.txt)

                wKiom1mJjtnT-zP-AAAXEjYsHUI085.png-wh_50

            

            eg2:uniq命令什么选项都不加,仅显示连续重复的行一次

                wKioL1mJjxLRDvXTAAAojUAmSjQ352.png-wh_50


            eg3:显示每行重复出现的次数

                wKiom1mJj5vDRQfMAAArjzbs8i0634.png-wh_50


            eg4:仅显示重复过的行

                wKioL1mJj8ywoHSQAAAfE66pveA304.png-wh_50


            eg5:仅显示不曾重复过的行

                wKioL1mJkEOgE-VGAAAk6NLuang963.png-wh_50                

十一、比较文件

    diff:比较两个文件之间的区别 

    patch:向文件打补丁

        -b:自动备份改变了的文件

1
2
3
4
5
6
        diff  foo.conf-broken foo.conf-works
          5c5
         < use_widgets = no
         --
         > use_widgets =  yes 
         注明第5行有区别(改变)

            eg1:

                wKioL1mJiQKwB776AAA-cq1KyvQ611.png-wh_50

            eg2:使用 -u 选项来输出“统一的(unified)”diff格式文件,最适用于补丁文件。

                wKiom1mJiUGzF6jsAABqgzwc08g580.png-wh_50

            eg3:打补丁;删除f2文件,使用patch来恢复f2文件,-b自动备份改变了的文件(f1),执行之后f2文件就恢复了,但是文件名不叫f2,而是f1;而原来的f1文件改名叫f1.orig;

                wKioL1mJi1Xwmk3zAAB8dF4xKbQ725.png-wh_50

                

    

  








      本文转自wzcLINUXER 51CTO博客,原文链接:http://blog.51cto.com/yacheng0316/1954590,如需转载请自行联系原作者



相关文章
|
7月前
|
数据采集 监控 数据处理
九、正则表达式详解:掌握强大的文本处理工具(一)
九、正则表达式详解:掌握强大的文本处理工具(一)
|
7月前
|
数据采集
十、正则表达式详解:掌握强大的文本处理工具(二)
十、正则表达式详解:掌握强大的文本处理工具(二)
|
7月前
|
数据采集 搜索推荐 算法
十一、正则表达式详解:掌握强大的文本处理工具(三)
十一、正则表达式详解:掌握强大的文本处理工具(三)
|
9月前
|
人工智能 IDE 搜索推荐
ChatGPT写python脚本,轻松搞定文本处理
ChatGPT写python脚本,轻松搞定文本处理
157 0
|
机器学习/深度学习 自然语言处理 搜索推荐
基本文本处理 1|学习笔记
快速学习基本文本处理 1
52 0
基本文本处理 1|学习笔记
|
自然语言处理 定位技术 开发者
基本文本处理 2|学习笔记
快速学习基本文本处理 2
73 0
基本文本处理 2|学习笔记
|
自然语言处理 开发者 数据格式
基本文本处理 3|学习笔记
快速学习基本文本处理 3
61 0
基本文本处理 3|学习笔记
|
监控 Linux C#
文本处理命令 | 学习笔记
快速学习文本处理命令。
|
监控
文本处理工具
时间:2017.11.21 作者:李强 参考:man,info,magedu讲义 声明:以下英文纯属个人翻译,英文B级,欢迎纠正,以下内容纯属个人理解,并没有对错,只是参考,盗版不纠,才能有限,希望不误人子弟为好。
565 0