码迷,mamicode.com
首页 > 系统相关 > 详细

1、Linux文本处理基础命令

时间:2016-06-12 03:43:35      阅读:359      评论:0      收藏:0      [点我收藏+]

标签:linux文本处理基础命令 1、sort 2、tr 3、cut 4、uniq 5、wc 6、tee 7、paste

Liunx文本处理基础命令是运维工程师不可绕过,必须熟悉掌握的关键命令,它们组合起来就像一扇门,是通往文本三剑客(grep,sed,awk)及shell脚本编程的必经之路。


更新至:1、Sort 2、tr 3、cut 4、uniq 5、wc 6、tee 7、paste

1、Sort:
    #sort命令主要用于排序,可针对文本文件内容,以行为单位进行排序。
        SYNOPSIS:sort [OPTION]... [FILE]...
            常用选项:不加选项默认为以ASCII码进行排序;
                -f:排序时忽略大小写;
                -n:按数值大小排序;
                -o </path/to/file>:排序后结果输出文件(如果要直接修改本文件,要用-o,用重定向和tee命令都会清空原文件内容);
                -r:逆序显示;
                -t <分隔字符>:指定排序时所用分隔字符;
                -k 选择以哪个区间进行排序;
                    E.g:
                        # cat /etc/passwd |sort -n -k3 -t: -o /backup/passwd.bak
                            #以:为分隔符,第三个区间,进行数值排序,并将结果输出到/backup/passwd.bak
                            polkitd:x:997:996:User for polkitd:/:/sbin/nologin
                            systemd-network:x:998:997:systemd Network Management:/:/sbin/nologin
                            systemd-bus-proxy:x:999:998:systemd Bus Proxy:/:/sbin/nologin
                            simpletime:x:1000:1000:SimpleTime:/home/simpletime:/bin/bash
                            allen:x:1001:0::/home/allen:/bin/bash
                            nfsnobody:x:65534:65534:Anonymous NFS User:/var/lib/nfs:/sbin/nologin


2、tr
    #tr命令可以对来自标准输入的字符进行替换、压缩和删除。作用强大。
        SYNOPSIS:tr [OPTION]... SET1 [SET2]
            常用选项:
                -c或--complerment:把SET1字符替换完SET2
                -d或--delete:删除所有属于SET1的字符;
                -s或--squeeze-repeats:删除连续且重复的字符;                
                    E.g:
                        # echo "Hello Word"|tr "a-z" "A-Z"
                        HELLO WORD

                        # echo H1e3l3l4o23W323o43r54d6|tr -d  "[[:digit:]]"     
                        HelloWord

                        # echo H1e3l3l4o23W323o43r54d6|tr -d -c "[[:digit:]]"  
                        13342332343546[root@localhost ~]#

                        # echo H1e3l3l4o23W323o43r54d6|tr -d -c "[[:digit:]]\n"
                        13342332343546

                        # echo H1e3l3l4o23W323o43r54d6|tr -d -c "[[:digit:]]\n"|tr -s "[1-9]"
                        134232343546


3、cut
    #cut命令用来显示行中的指定部分,删除文件中指定字段。
        SYNOPSIS:cat [OPTION]... [FILE]...
            常用选项:
                -d:指定分隔符
                -f:指定显示字段范围
                -c: 只显示指定范围内的字符
                --complement:反向显示
                    E.g:
                        # cat passwd|cut -d: -f3-4
                        89:89
                        38:38
                        72:72
                        1000:1000
                        1001:0

                        #cat passwd|cut -d: -f3-4 --complement
                        postfix:x::/var/spool/postfix:/sbin/nologin
                        ntp:x::/etc/ntp:/sbin/nologin
                        tcpdump:x::/:/sbin/nologin
                        simpletime:x:SimpleTime:/home/simpletime:/bin/bash
                        allen:x::/home/allen:/bin/bash

                        # cat passwd|cut -c2-
                        ostfix:x:89:89::/var/spool/postfix:/sbin/nologin
                        tp:x:38:38::/etc/ntp:/sbin/nologin
                        cpdump:x:72:72::/:/sbin/nologin
                        impletime:x:1000:1000:SimpleTime:/home/simpletime:/bin/bash
                        llen:x:1001:0::/home/allen:/bin/bash


4、uniq
    #uniq可以用来去除排序过程中文件的重复行并统计重复行次数,但重复行必须是相邻的,因此一般经常与sort合用。
        SYNOPSIS:uniq [OPTION]... [INPUT [OUTPUT]]
            常用选项:
                -i:忽略大小写字符的不同;
                -c:进行计数;
                -u:只显示唯一的行;
                    E.g:
                        # sort helloword |uniq

                        Gee
                        Hello Word

                        # sort helloword |uniq -c
                          1
                          2 Gee
                          2 Hello Word

                        # sort helloword |uniq -d
                        Gee
                        Hello Word

                        # sort helloword |uniq -u
                        Blank lines #空白行


5、wc
    #用于统计文件里有多少个单词,多少行,多少字符
        SYNOPSIS:wc [OPTION]... [FILE]...
            常用选项:
                -l:统计行数
                -w:统计单词数
                -c:统计字符数
                    E.g:
                        # wc /etc/passwd
                          44 #行   88 #单词 2323 #字符 /etc/passwd
                          # wc /etc/passwd -lw
                          44   88 /etc/passwd


6、tee
    #读取标准输入的数据,将其内容输出到标准输出设备,同时保存成文件
        SYNOPSIS:tee [OPTION]... [FILE]...
            常用选项:
                -a或--append:追加文件而非覆盖
                    E.g:
                        # free -m|tee /memory
                                      total        used        free      shared  buff/cache   available
                        Mem:            977         353          96          13         528         376
                        Swap:          2047           0        2047

                        # free -m|tee -a memory |cat memory
                                      total        used        free      shared  buff/cache   available
                        Mem:            977         353          96          13         528         376
                        Swap:          2047           0        2047
                                      total        used        free      shared  buff/cache   available
                        Mem:            977         353          96          13         528         376
                        Swap:          2047           0        2047


7、paste
    #paste指令会把每个文件以列对列的方式,一列列合并
        常用选项:
            -s或--serial:让每个文件以单行显示,而不是以单列显示。
            -d或--delimiters:指定间隔符,用指定的间隔符取代默认的跳格字符;
                E.g:
                    # cat a b c
                    a1
                    a2
                    a3
                    b1
                    b2
                    c1
                    c3

                    # paste a b c      
                    a1      b1      c1
                    a2      b2      c3
                    a3

                    # paste a b c -s
                    a1      a2      a3
                    b1      b2
                    c1      c3

                    # paste a b c -s -d:
                    a1:a2:a3
                    b1:b2
                    c1:c3


 

本文出自 “Linux运维” 博客,请务必保留此出处http://allenyang.blog.51cto.com/10991027/1787996

1、Linux文本处理基础命令

标签:linux文本处理基础命令 1、sort 2、tr 3、cut 4、uniq 5、wc 6、tee 7、paste

原文地址:http://allenyang.blog.51cto.com/10991027/1787996

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!