• linux常见命令(五)


    用于文本内容处理的相关命令

    • sort
    • uniq
    • cut
    • comm
    • diff

    sort:对文件中数据进行排序,并将结果显示在标准输出上

    命令语法:sort [选项] [文件]

    选项选项含义
    -m 如果给定文件已排好序,那么合并文件
    -u 对排序后认为相同的行只留其中一行
    -d 按字典顺序排序,比较时仅字母、数字、空格和制表符有意义
    -f 将小写字母与大写字母同等对待
    -r 按逆序输出排序结果
    -c 检查给定文件是否已经排好序,如果他们没有排好序,则打印一个出错信息,并以状态值1退出

    例子:将文件cs.log数据排序,并显示在屏幕上

    [root@localhost ~]# sort cs.log
    

    读取文件cs.log内容,以倒序排序该文件并显示在屏幕上

    [root@localhost ~]# sort -r cs.log
    

    uniq:将重复行从输出文件中删除

    命令语法:uniq [选项] [文件]

    选项选项含义
    -c 显示输出中在每行行首加上本行在文件中出现的次数
    -d 只输出重复的行
    -D 显示所有重复的行
    -u 只显示文件不重复的行
    -s k 比较时跳过钱K个字符,K是数字
    -w K 对每行第K个字符以后的内容不做对照,K是数字
    -f K 比较时跳过前K列,K是数字
    -i 在比较的时候不区分大小写

    例子:查看文件cs.log中不重复行数据的内容

    [root@localhost ~]# cat cs.log
    wewe
    wewe
    uoij
    124
    [root@localhost ~]# uniq -u cs.log
    uoij
    124
    

    cut:从文件每行中显示出选定的字节、字符或字段(域)

    命令语法:cut [选项] [文件]

    选项选项含义
    -b<列表> 只选中指定的这些字节
    -c<列表> 只选中指定的这些字符
    -d<分界符> 使用指定分解符代替制表符昨晚区域分界
    -f<列表> 指定文件中设想被定界符(缺省情况下为制表符)隔开的字段的列表
    -n 取消分割多字节字符。仅和-b选项一起使用。如果字符的最后一个字节落在有-b选项的列表参数指示的范围之内,该字符将被写出;否则改字符将被排除
    -s 不打印没有包含分界符的行

    例子:显示文件/etc/passwd中的用户登录名和用户全称字段,这是第1个和第5个字段,由冒号隔开。

    [root@localhost ~]# cut -f 1,5 -d: /etc/passwd
    root:root
    bin:bin
    daemon:daemon
    adm:adm
    lp:lp
    sync:sync
    shutdown:shutdown
    halt:halt
    mail:mail
    operator:operator
    games:games
    ftp:FTP User
    nobody:Nobody
    systemd-network:systemd Network Management
    dbus:System message bus
    polkitd:User for polkitd
    sshd:Privilege-separated SSH
    postfix:
    chrony:
    li:
    

    comm:逐行比较两个已排过序的文件

    命令语法:comm [选项] [文件1] [文件2]

    选项选项含义
    -1 不输出文件1特有的行
    -2 不输出文件2特有的行
    -3 不输出文件3特有的行

    例子:比较文件file1和file2的文件内容

    [root@localhost ~]# cat file1
    a
    aa
    [root@localhost ~]# cat file2
    a
    bb
    
    [root@localhost ~]# comm file1 file2
    		a
    aa
    	bb
    comm: file 2 is not in sorted order
    

    比较文件file1和file2,只显示文件file1和file2中相同行的数据内容

    [root@localhost ~]# comm -12 file1 file2
    a
    comm: file 2 is not in sorted order
    

    diff:逐个比较两个文本文件,列出其不同之处

    命令语法:diff [选项] [文件1] [文件2]

    选项选项含义
    -b 忽略行尾的空格,二字符串中的一个或多个空格符都视为相等
    -c 使用上下文输出格式
    -r 当比较目录时,递归比较任何找到的子目录
    -y 以两列并排格式输出
    -W<n> 在并列格式输出时,使用指定的列宽,n代表数字
    -u 使用通用的输出格式
    -i 文件内容中忽略大小写差异
    -w 忽略所有的空白
    -a 所有的文件都视为文本文件来逐行比较
    -B 忽略插入删除空行引起的变化
    -q 只比较简短的输出文件是否不同
    -s 当两个文件相同时报告
    -t 在输出时扩展tab为空格,保护输入文件的tab对齐方式
    -x<模式> 排除匹配模式的文件
    -X<文件> 比较目录的时候,忽略和目录中与任何包含在指定文件的样式相配的文件和目录

    例子:比较file1和file2文件,列出其不同之处

    [root@localhost ~]# cat file1
    a
    aa
    [root@localhost ~]# cat file2
    a
    bb
    
    [root@localhost ~]# diff file1 file2
    2c2,3
    < aa
    ---
    > bb
    > 

    摘自:《Linux实用教程》人民邮电出版社出版发行 於岳编著
  • 相关阅读:
    图解 SQL 各种连接查询之间的区别
    虚拟机Ubuntu无法上网问题解决过程
    SQL语言(二) java怎样连接操作数据库中的数据
    SQL语言(一)
    编写简单的用户登录界面
    Java
    java第一阶段测试
    Net Core linux docker 部署异常
    .Net Core Cap 异常
    记.Net 创建文件
  • 原文地址:https://www.cnblogs.com/mylive/p/11105684.html
Copyright © 2020-2023  润新知