13.文件管理之字符处理 sort uniq cut tr wc

1|0引入

1|11.文件系统

文件系统是操作系统操作计算机硬盘的应用程序

1|22.文件

文件是文件系统提供给用户操作硬盘的一种功能

1|33.字符处理

  • sort : 排序文本, 默认对整列有效

  • wc : 统计文件行数, 字节, 字符数

  • uniq : 取出重复行

  • cut : 把文本切分类似于awk

  • sed : 流式编辑器, 现规定好规则, 一次只处理一行内容

  • awk : 用于格式化处理文件, 处理有规律的文件

  • grep : 强大的文本搜索工具 (文件过滤)

2|0一.排序: sort

2|11.应用场景

在有些情况下, 需要对一个无序的文本文件进行数据的排序操作, 这时候就要用到 sort 了

2|22.常用选项

选项作用
-t 指定分隔符, 默认以空格为分隔符
-k 指定某列来进行排序
-n 依照数值大小排序,而不是以字符串方式
-r 倒序

2|33.应用示例

🌟默认排序:以第一个字符作比较,也可以说对应的是ASCLL表上对应的数字的比较,默认升序
[root@shawn ~]# cat a.txt
c:2
d:444
a:5
e:1
f:11
[root@shawn ~]# sort a.txt
a:5
c:2
d:444
e:1
f:11
🌟"-t:","-k2":以":"做分隔符,对比第二个字符(默认一个一个字符做比较) [
[root@shawn ~]# sort -t: -k2 a.txt
e:1
f:11
c:2
d:444
a:5
🌟"-n":依照数值大小排序,而不是以字符串方式一个一个对比
[root@shawn ~]# sort -t: -k2 -n a.txt
e:1
c:2
a:5
f:11
d:444
🌟"-r":倒序排列
[root@shawn ~]# sort -t: -k2 -n -r a.txt
d:444
f:11
a:5
c:2
e:1

3|0二.去重: uniq

3|11.应用场景

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

3|22.常用选项

选项作用
-c 在每列的旁边显示出现的次数
-d 仅显示重复出现的行列
-u 仅显示出现一次的行列

3|33.应用示例

🌟与"sort"配合去重
[root@shawn ~]# cat a.txt
song
123
shawn
123
shawn xing
[root@shawn ~]# sort a.txt
123
123
shawn
shawn
song
xing
[root@shawn ~]# sort a.txt | uniq
123
shawn
song
xing
🌟"-c": 显示重复次数
[root@shawn ~]# sort a.txt | uniq -c
2 123
2 shawn
1 song
1 xing
🌟"-d": 仅显示重复出现的行列
[root@shawn ~]# sort a.txt | uniq -d
123
shawn
🌟"-u"; 仅显示出现一次的行列
[root@shawn ~]# sort a.txt | uniq -u
song
xing

4|0三.截取字段: cut

4|11.应用场景

用来截取显示行中的指定部分, 与awk类似

4|22.常用选项

选项作用
-d 指定字段的分隔符, 默认字段分隔符为"tab"
-f 显示指定的内容

4|33.应用示例

🌟以分隔符":"分隔字符,截取"1-4"段
[root@shawn ~]# cat a.txt
root:x:0:0:root:/root:/bin/bash
[root@shawn ~]# cut -d ":" -f1-4 a.txt
root:x:0:0
🌟以分隔符":"分隔字符,截取"1,3,6,7"段
[root@shawn ~]# cut -d ":" -f1,3,6,7 a.txt
root:0:/root:/bin/bash

5|0四.tr命令

替换或删除

5|11.参数

"-d" :删除 tr "xxx" "XXX" :替换

5|22.应用示例

🌟替换
[root@shawn ~]# cat a.txt
   root:x:0:0:root:/root:/bin/bash
[root@shawn ~]# cat a.txt | tr "root" "ROOT"
    ROOT:x:0:0:ROOT:/ROOT:/bin/bash
🌟"-d" : 删除
[root@shawn ~]# cat a.txt | tr -d "root"
      :x:0:0::/:/bin/bash
🌟对字符进行替换,是每个字符都替换,而不是匹配一整个单词替换
[root@shawn ~]# echo       
      "Hello Songhaixing 123" > a.txt
[root@shawn ~]# cat a.txt
        Hello Songhaixing 123
[root@shawn ~]# tr "Song" "sONG" < a.txt 
        HellO sONGhaixiNG 123

6|0五.WC命令

统计数字

6|11.常用选项

选项作用
-c 统计文件的Bytes
-l 统计文件的行数
-w 统计文件的单词数, 默认以空白字符为分隔符

6|22.应用示例

🌟"-c": 查看大小
[root@shawn ~]# cat a.txt
  Hello heziliang123
  hello nihao
[root@shawn ~]# ll a.txt
  -rw-r--r-- 1 root root 34 10月 27 22:12 a.txt
[root@shawn ~]# wc -c a.txt
   34 a.txt
🌟"-l": 查看行数
[root@shawn ~]# wc -l a.txt
  2a.txt
🌟"-w": 统计单词个数
[root@shawn ~]# wc -w a.txt
  5 a.txt

6|3六.文件处理之三剑客

 


__EOF__

本文作者ଲ小何才露煎煎饺
本文链接https://www.cnblogs.com/zeny/articles/14409776.html
关于博主:评论和私信会在第一时间回复。或者直接私信我。
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角推荐一下。您的鼓励是博主的最大动力!
posted @   ଲ小何才露煎煎饺  阅读(48)  评论(0编辑  收藏  举报
编辑推荐:
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
阅读排行:
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
点击右上角即可分享
微信分享提示