当前位置: 首页 > news >正文

Linux文档编辑相关命令详解

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

相关文章:

  • 初识神经网络的分类问题
  • GAN、Diffusion与美颜SDK:AI如何驱动人脸美型API进化?
  • OpenGL ES -> GLSurfaceView纹理贴图
  • 坐标变换介绍与机器人九点标定的原理
  • 【JavaEE进阶】图书管理系统 - 柒
  • PAT 甲级 1107 并查集
  • 国产编辑器EverEdit - 超多样式设置
  • go 分布式redis锁的实现方式
  • AI是否能真正理解人类情感?从语音助手到情感机器人
  • C 语 言 --- 经 典 习 题 2
  • 第一次执行GameObject.Instantiate时可能出现明显的卡顿 如何解决该问题?
  • TCP/IP四层模型:从入门到精通
  • NVIDIA(英伟达) GPU 芯片架构发展史
  • <Rust><iced>基于rust使用iced构建GUI实例:图片浏览器
  • Spark核心之02:RDD、算子分类、常用算子
  • 设计模式:记录所有设计模式方便后续复习
  • 小白向:如何使用dify官方市场“ECharts图表生成”工具插件——dify入门案例
  • Sat- nerf深度损失
  • RPA 职业前景:个人职场发展的 “新机遇”
  • DNS 详细过程 与 ICMP
  • 洗冤录|县令遇豪强:黄榦处理的一起地产纠纷案
  • 面对非专业人士,科学家该如何提供建议
  • 《尤物公园》连演8场:观众上台,每一场演出都独一无二
  • 烈士沈绍藩遗孤、革命家帅孟奇养女舒炜逝世,享年96岁
  • 梵蒂冈选出新教皇,外交部:望新教皇推动中梵关系不断改善
  • 正荣地产:董事会主席、行政总裁辞任,拟投入更多精力推动境内债重组等工作