Linux学习记录D04:管道及文本处理工具

    管道:
        COMMAND1 | COMMAND2 | COMMAND3 |...
        
        Note:最后一个命令会在当前shell进程的子shell进程中执行:

        tee命令:
            tee [OPTION]... [FILE]...

    练习:
        1、将/etc/passwd文件中的前5行内容转换为大写后保存至/tmp/passwd.out文件中:
            head -n 5 /etc/passwd | tr 'a-z' 'A-Z' > /tmp/passwd.out
        2、将登录至当前系统上用户信息中的后3位的信息转换为大写后保存至/tmp/who.out文件中:
            who | tail -n 3 | tr 'a-z' 'A-Z' > /tmp/who.out
        
文本处理工具:wc, cut, sort, uniq

    wc命令:
        wc [OPTION]... [FILE]...
            -l: lines
            -w: words
            -c: charactors
            
        cut命令:
            cut [OPTION]... [FILE]...
                -d DELIMITER: 指明分隔符
                -f FILEDS:
                    #: 第#个字段
                    #,#[,#]: 离散的多个字段,例如1,,3,6
                    #-#:连续的多个字段,例如1-6
                    
                    混合使用:1-3,7
                --output-delimiter=STRING 输出替换成自己想要的分隔符
        
        sort命令:
            sort [OPTION]... [FILE]...
                -f:忽略字符大小写
                -r:逆序
                -t DELIMITE:字段分隔符
                -k #:以指定字段为标准排序
                -n:以数值大小进行排序
                -u:uniq,排序后去重
                
        uniq命令:
            uniq [OPTION]... [FILE]...
                -c:显示每行重复出现的次数
                -d:仅显示重复过的行
                -u:仅显示不曾重复的行
            
            Note: 连续且完全相同方为重复
        
        练习:以冒号分隔,取出/etc/passwd文件的第6至第10行,并将这些信息按第3个字段的数值大小进行排序:最后仅显示各自的第1个字段
            sed -n '6,10p' /etc/passwd | sort -t: -k3 -n | cut -d: -f1

猜你喜欢

转载自blog.csdn.net/up1292/article/details/82262838