Linux文档编辑相关命令详解

ops/2025/3/5 1:53:23/

Linux文档编辑相关命令

1. grep

  grep (global regular expression) 命令用于查找文件里符合条件的字符串或正则表达式。

1.1 语法

  grep [options] pattern [files]

1.2 常用选项
  • -i:忽略大小写进行匹配。
  • -v:反向查找,只打印不匹配的行。
  • -n:显示匹配行的行号。
  • -r:递归查找子目录中的文件。
  • -l:只打印匹配的文件名。
  • -c:只打印匹配的行数。
1.3 实例
  • 在文件 file.txt 中查找字符串 “hello”,并打印匹配的行
	grep hello file.txt
  • 在文件夹 dir 中递归查找所有文件中匹配字符串 “hello” 的行,并打印匹配行所在的文件名和行号
	grep -rn hello dir/ 
  • 在标准输入中查找字符串 “world”,并只打印匹配的行数
	echo "hello world" | grep -c world
  • 在当前目录中,查找后缀有 file 字样的文件中包含 test 字符串的文件,并打印匹配的行
	grep test *file 
  • 查找文件名中包含 test 的文件中不包含 test 的行
	grep -v test *test*

2. tr

  tr 命令用于转换或删除文件中的字符。

2.1 语法

  tr [-cdst] [第一字符集] [第二字符集]

2.2 常用选项
  • -c, --complement:反选设定字符。也就是符合第一字符集的部分不做处理,不符合的部份才进行转换。
  • -d, --delete:删除指令字符。
  • -s, --squeeze-repeats:缩减连续重复的字符成指定的单个字符。
  • -t, --truncate-set1:削减第一字符集指定范围,使之与第二字符集设定长度相等。
2.3 实例
  • 将文件 testfile 中的小写字母全部转换成大写字母
	cat testfile | tr a-z A-Z 
  • 将文件 testfile 中的每个单词单独成一行
	cat testfile | tr -s ' ' '\n'

3. wc

  wc命令用于计算字数。

3.1 语法

  wc [-clw] [文件…]

3.2 常用选项
  • -c:显示Bytes数。
  • -l:显示行数。
  • -w:显示字数。
3.3 实例
  • 默认情况下,wc 将计算指定文件的行数、字数以及字节数
	wc testfile

4. sort

  sort 命令用于将文本文件内容加以排序。

4.1 语法

  sort [-bcdfimMnr] [文件] [-k field1[,field2]]

4.2 常用选项
  • -b:忽略每行前面开始出的空格字符。
  • -c:检查文件是否已经按照顺序排序。
  • -d:排序时,处理英文字母、数字及空格字符外,忽略其他的字符。
  • -f:排序时,将小写字母视为大写字母。
  • -i:排序时,除了040至176之间的ASCII字符外,忽略其他的字符。
  • -m:将几个排序好的文件进行合并。
  • -M:将前面3个字母依照月份的缩写进行排序。
  • -n:依照数值的大小排序。
  • -r:以相反的顺序来排序。
4.3 实例
  • 对文件的行进行排序
	sort testfile 
testfile的原有内容为:
test 30  
Hello 95  
Linux 85 结果如下:
Hello 95
Linux 85
test 30

注:sort 命令将以默认的方式将文本文件的第一列以 ASCII 码的次序排列,并将结果输出到标准输出。

  • 使用 -k 参数设置对第二列的值进行重排
	sort testfile -k 2
test 30  
Linux 85 
Hello 95  

5. uniq

  uniq 命令用于检查及删除文本文件中重复出现的行列,一般与 sort 命令结合使用。

5.1 语法

  uniq [-cdu] [输入文件] [输出文件]

5.2 常用选项
  • -c或–count:在每列旁边显示该行重复出现的次数。
  • -d或–repeated:仅显示重复出现的行列。
  • -u或–unique:仅显示出一次的行列。
  • [输入文件] 指定已排序好的文本文件。如果不指定此项,则从标准读取数据;
  • [输出文件] 指定输出的文件。如果不指定此选项,则将内容显示到标准输出设备(显示终端)。
5.3 实例
  • 文件 testfile 中第 2、3、5、6、7、9行为相同的行,使用 uniq 命令删除重复的行
	uniq testfile 
testfile的原有内容为:
test 30  
test 30  
test 30  
Hello 95  
Hello 95  
Hello 95  
Hello 95  
Linux 85  
Linux 85使用 uniq 命令删除重复的行后,有如下输出结果:
test 30  
Hello 95  
Linux 85 
  • 检查文件并删除文件中重复出现的行,并在行首显示该行重复出现的次数
	uniq -c testfile
结果如下:
3 test 30             #前面的数字的意义为该行共出现了3次  
4 Hello 95            #前面的数字的意义为该行共出现了4次  
2 Linux 85            #前面的数字的意义为该行共出现了2次 

注:当重复的行不相邻时,uniq 命令是不起作用的。例如,文件内容为以下时,uniq 命令不起作用。

test 30  
Hello 95  
Linux 85 
test 30  
Hello 95  
Linux 85 
test 30  
Hello 95  
Linux 85 

这时我们可以采用 sort + uniq

$ sort testfile | uniq
Hello 95
Linux 85
test 30

http://www.ppmy.cn/ops/163177.html

相关文章

【愚公系列】《Python网络爬虫从入门到精通》040-Matplotlib 概述

标题详情作者简介愚公搬代码头衔华为云特约编辑,华为云云享专家,华为开发者专家,华为产品云测专家,CSDN博客专家,CSDN商业化专家,阿里云专家博主,阿里云签约作者,腾讯云优秀博主,腾讯云内容共创官,掘金优秀博主,亚马逊技领云博主,51CTO博客专家等。近期荣誉2022年度…

基于专利合作地址匹配的数据构建区域协同矩阵

文章目录 地区地址提取完成的处理代码 在专利合作申请表中,有多家公司合作申请。在专利权人地址中, 有多个公司的地址信息。故想利用这里多个地址。想用这里的地址来代表区域之间的专利合作情况代表区域之间的协同、协作情况。 下图是专利合作表的一部分…

深入解析 ASP.NET Core 的内存管理与垃圾回收优化

在现代高并发的 Web 应用中,内存管理和垃圾回收(GC)是影响性能和稳定性的重要因素。ASP.NET Core 作为基于 .NET Core 平台的高效 Web 框架,其内存管理和垃圾回收机制设计上考虑了高吞吐量、低延迟的需求。在本文中,我…

刷题日记——部分二分算法题目分享

前言 咱们紧跟上一期结合时间复杂度浅谈二分法的好处, 并分享部分二分题目(将持续更新题目,绝对值你一个收藏)-CSDN博客 笔者接着分享一些刷过的关于二分算法的题目. 第一题 1283. 使结果不超过阈值的最小除数 - 力扣(LeetCode) 这道题就是典型的二…

新版AndroidStudio 修改 jdk版本

一、问题 之前,在安卓项目中配置JDK和Gradle的过程非常直观,只需要进入Android Studio的File菜单中的Project Structure即可进行设置,十分方便。 如下图可以在这修改JDK: 但是升级AndroidStudio之后,比如我升级到了Android St…

【Python 3.12.1 颠覆性升级:GIL 解锁与性能飞跃,开启多线程新时代】

(示意图:Python 多线程性能爆炸式增长) 一、Python 3.12.1 的五大核弹级更新 1. GIL 的终结:多线程性能提升 300% Python 3.12.1 首次支持通过 --disable-gil 编译选项彻底移除全局解释器锁(GIL)&#xf…

我国牵头制定养老机器人国际标准 为全球银发经济提供技术基准

大湾区经济网湾区财经报道,据国际电工委员会(IEC)近日正式发布由中国牵头制定的养老机器人国际标准IEC63310《互联家庭环境下使用的主动辅助生活机器人性能准则》。北京外国语大学教授、京津冀服务贸易协同发展智库专家指出,该标准…

Java 关键字 volatile

volatile 是 Java 中的一个关键字,用于修饰变量,确保多线程环境下的可见性和有序性。它主要用于解决以下两个问题: 可见性问题:一个线程对 volatile 变量的修改对其他线程立即可见。有序性问题:禁止指令重排序&#x…