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

  • 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实用教程》人民邮电出版社出版发行 於岳编著

linux常见命令(五)的更多相关文章

  1. 2 . Linux常见命令

    Linux常见命令格式: 命令名称 选项 参数 ls -alh 文件/目录 --all #ls 显示当前目录内容 #ls -l 显示文件详细信息 #ls -hl h已常见单位显示文件大小 k M G# ...

  2. Linux常见命令(四)——mkdir

    今天我们来介绍第四个命令:mkdir.mkdir (Make Directory 创建目录): 若指定目录不存在则创建目录.在创建目录时,要求创建目录的用户具有写权限,并应保证新建的目录没有重名. 用 ...

  3. 嵌入式Linux开发教程:Linux常见命令(上篇)

    摘要:这是对周立功编著的<嵌入式Linux开发教程>的第7期连载.本期刊载内容有关LinuxLinux常见命令中的导航命令.目录命令和文件命令.下一期将连载网络操作命令.安装卸载文件系统等 ...

  4. 一个linux常见命令的列表

    这是一个linux常见命令的列表. 那些有• 标记的条目,你可以直接拷贝到终端上而不需要任何修改,因此你最好开一个终端边读边剪切&拷贝. 所有的命令已在Fedora和Ubuntu下做了测试 命 ...

  5. Linux常见命令(五)——rmdir

      前  言 JRedu 今天我们来介绍第五个命令:rmdir . 命令英文原意:remove empty directories 命令用途: rmdir:删除空目录,非空的目录不能删除 本章内容将详 ...

  6. 第二天 Linux常见命令

    复习: 判断题 1.fedora.redhat.Centos.suse.ubuntu.都是常见的linux 2./分区.swap分区./boot分区都是linux的必须分区 3./dev/sda5在l ...

  7. Linux常见命令(二)

    随着Linux应用的扩展许多同学开始接触Linux,根据学习Windwos的经验往往有一些茫然的感觉:不知从何处开始学起.虽然Linux桌面应用发展很快,但是命令在Linux中依然有很强的生命力.Li ...

  8. Linux常见命令(三)

    今天我们来介绍第三个命令:pwd. Linux中用 pwd 命令来查看”当前工作目录“的完整路径. 简单得说,每当你在终端进行操作时,你都会有一个当前工作目录. 在不太确定当前位置时,就会使用pwd来 ...

  9. Linux 常见命令说明

    目前由于自己接触到的是 windows 的操作系统,所以会经常使用 git bash 来提交代码到 github上. git bash 是 windows 下模拟 Linux 的命令行工具. 在此总结 ...

  10. linux 常见命令--系统信息部分

    head -n 1 /etc/issue    #查看操作系统 cat /etc/redhat-release  #查看linux系统版本 cat /proc/meminfo |grep MemTot ...

随机推荐

  1. .NET Core(C#)使用Titanium.Web.Proxy实现Http(s)代理服务器监控HTTP请求

    关于Titanium.Web.Proxy详细信息可以去这里仔细看看,这里只记录简单用法 安装引用Titanium.Web.Proxy NuGet直接获取Titanium.Web.Proxy 使用 配置 ...

  2. Python运维开发之路《python基础介绍》

    一. python介绍相关 1. Python简介 Python 是一个高层次的结合了解释性.编译性.互动性和面向对象的脚本语言. - Python 的设计具有很强的可读性,相比其他语言经常使用英文关 ...

  3. pta第三阶段题目集

    (1)前言 pta第三阶段作业中,主要包含了如下的主要内容: 1.全程贯穿了课程设计的程序,每一次都是上一次的迭代和修改,难度较大,中间涉及到先是类与类之间的多态和继承关系,后面的修改中,转变为了组合 ...

  4. 2023-07-04:给定一个数组A, 把它分成两个数组B和C 对于数组A每个i位置的数来说, A[i] = B[i] + C[i] 也就是一个数字分成两份,然后各自进入B和C 要求B[i], C[i

    2023-07-04:给定一个数组A, 把它分成两个数组B和C 对于数组A每个i位置的数来说, A[i] = B[i] + C[i] 也就是一个数字分成两份,然后各自进入B和C 要求B[i], C[i ...

  5. ZEGO即构科技荣获36氪【WISE2020中国新经济之王最具影响力企业】

    12月8-10日,36氪重磅新经济峰会WISE2020新经济之王大会将在北京举办.近日,2020新经济之王--中国最具影响力企业榜单陆续发布,全球云通讯服务商即构科技,凭借在企业服务领域硬核出色的技术 ...

  6. Python根目录中没有Scripts文件夹问题

    电脑版本是win10,配置好python的环境变量,确保可以运行python命令. 1.打开cmd命令行输入 python -m ensurepip 2.查看Python根目录下,有没有新生成Scri ...

  7. Redis Stack:基于Redis的搜索、文档、图形和时间序列功能

    基于Redis的搜索.文档.图和时间序列功能整合到一个扩展Redis Stack中,以使开发人员能够轻松构建实时应用程序. Redis Stack 于 3 月 23 日发布,由三个组件组成: Redi ...

  8. Android LinearLayout快速设置每个item间隔

    原文地址: Android LinearLayout快速设置每个item间隔 平常使用LinearLayout的时候,有时候会需要对每个item设置间距,但是每个item都加上margin的方法实在有 ...

  9. PlayWright(二十一)- Pytest插件报告

    1.下载 pytest框架有官方的报告pip install pytest-html   下载成功,那我们怎么使用呢?   2.使用 可以直接在配置文件里使用   在 pytest 配置文件中, 增加 ...

  10. python 导出项目需要的库

    输入命令: pip freeze > requirements.txt 产生的文件内容如下: asgiref==3.4.0 Django==3.2.4 django-debug-toolbar= ...