使用Shell 自带的工具,实现对大文本文件的操作,满足日常数据处理的需求。

一、命令 cut -切割

cut 可实现对文本按列进行文本处理,特别适合于大文件的数据处理。
基本语法是 cut [option] filename

参数

cut -f 列号,获取第几列;
cut -c 以字符为单位分割;
cut -d 以字节为单位分割,自动忽略多字节字符边界,如加 -n ,则不分割多字节字符;
cut n- 指定第n列开始;
cut n-m 指定从n列到m列;

demo演示

1)字节切割
原始文件如下所示。

获取前两列。输入命令 cut info.text -d " " -f 1-2,自定义分割,按空格分割。

2)切割bash的PID
在虚拟机中找到bash的信息,如下图所示。

执行命令 ps -aux | grep bash | head -n 1 | cut -d " " -f 8,查找bash进程,取第一行,空格分割,按列截取,取第8列,结果如下图所示。

二、命令 sort -排序

sort 对文件进行排序,并将排序结果标准或重定向输出到指定文件。
基本语法是 **sort [option] **

参数

sort -n 按照数值大小排序;
sort -r 以相反的顺序排序;
sort -t 分隔符 默认空格分隔符,排序时的分隔符;
sort -k 指定需要排序的列;
sort -o 将排序后的结果存入指定的文件;
sort -u 结果唯一,即去重过的;

demo演示

1)排序
原始文件如下所示。

执行命令 sort -t " " -k2n,2 infodata.txt,第二列按照数字升序排序,注意排序要指定从哪列到哪列,效果如下图所示。

上图结果中存在重复的数据,如何去重呢?
在命令中添加 -uk1,2,完整命令 sort -t " " -k2n,2 -uk1,2 infodata.txt,效果如下所示。

如何将重复的数据打印出来呢?
使用命令 sort infodata.txt | uniq -dc,效果如下图所示。

三、命令 uniq - 去重

uniq 以行为单位,行与行之间比较去重,只能是对有序的文本进行有效的去重,因此与sort命令结合使用。
基本语法是 **uniq [option] **

参数

uniq -c 统计行出现的次数;
uniq -d 只显示重复行并去重;
uniq -u 只显示唯一行;
uniq -i 忽略大小写;
uniq -f 忽略前N个字段,字段用空白字符分割;

demo演示

1)排序去重
只展示出现一次的行,执行命令 sort infodata.txt | uniq -u,效果如下图所示。

对于有行号的文本文件处理,使用 -f 参数忽略第一个行号字段,对之后的字段去重处理。
测试发现 sort 去重 似乎对最后一行不生效(最后一行重复未包含),在实际应用中再验证。

参考博客

【1】https://blog.csdn.net/qq_43382735/article/details/121007185

Shell 实现文件基本操作(cut-切割、sort-排序、uniq-去重)相关推荐

  1. 【Linux】软硬链接 文件存储,删除,文件目录管理 (cp、mv、rm、cut、sort、uniq、wc、head、tail、split 、which、whereis、type、find)

    目录 一.文件存储 二.硬链接与软链接 硬链接 如何创建硬链接: 硬链接知识小结 软连接 如何创建软连接? 软连接知识小结: 三.文件删除的原理 四.文件目录管理命令 cp命令 mv 命令 rm 命令 ...

  2. Shell之常用命令(diff、path、cut、sort、uniq、tr、path)

    Shell之常用命令(diff.cut.sort.uniq.tr.path) diff命令 作用:比较两个文件或目录的不同 diff [options] target1 target2 比较结果读取方 ...

  3. shell正则表达式(cut、sort、uniq、tr、paste)小工具

    目录 一.正则表达式 二.基础正则表达式 三.扩展正则表达式元字符 四.grep命令 1.统计包含某个字符的文本行的行数 2. 不区分大小写查找the所有的行 3.查找特定集合字符 4.查找连续字符范 ...

  4. linux——编写Shell脚本常用命令:diff、patch、cut、sort、uniq、、||、test、tr

    diff 和 patch 命令帮助:diff –help | patch –help diff命令在最简单的情况下,比较给定的两个文件的不同.如果使用"-"代替"文件&q ...

  5. 第一章 Shell专题之文本处理工具(grep、cut、sort、uniq、tee、diff、paste、tr)

    1. grep工具 grep是**行**过滤工具:用于根据关键字进行行过滤 语法和选项 语法: # grep [选项] '关键字' 文件名 常见选项: OPTIONS:-i: 不区分大小写-v: 查找 ...

  6. shell之常用小工具(sort、uniq、tr、cut)

    目录 一.sort 排序 1.格式 2.常用选项 3.sort 例子 1.不加任何选项 如:sort /etc/passwd 2. 去重 (sort -u) 3. 指定分隔符(-t),指定排序的列(- ...

  7. linux局部变量特殊字符替换,变量,全局变量,环境变量,特殊符号、管道符命令:cut、sort、uniq、wc、tee、tr、sp...

    变量 常见的变量: PATH:决定shell在哪些目录下寻找命令和程序: HOME:家目录: PWD:当前目录: LOGNAME:当前用户名称: env命令: 查看常见变量: HOSTNAME:表示主 ...

  8. shell脚本编写之常用基础命令(diff、patch、cut、sort、uniq、与||、test、tr)

    文章目录 一.shell(计算机壳层) 二.shell中常用的基本命令 1.diff 命令(比对文件) 1.1 基本概念以及命令的格式 1.2 结果读取方式 1.3 diff中常用的参数 2.patc ...

  9. awk、cut、sort和uniq

    一.awk sed以行为单位处理文件,awk不仅能以行为单位还能以列为单位处理文件. awk缺省的行分隔符是换行符,缺省的列分隔符是连续的空格和tab,而且行分隔符和列分隔符都可以重定义,比如/ect ...

  10. sort 排序 + unique 去重

    先来看一道题目: 明明想在学校中请一些同学一起做一项问卷调查,为了实验的客观性,他先用计算机生成了N个1到1000之间的随机整数(N≤100),对于其中重复的数字,只保留一个,把其余相同的数去掉,不同 ...

最新文章

  1. java map 输入 查询 修改_Mybatis增删改查mapper文件写法详解
  2. MongoDB简单操作
  3. AI:几张图理清人工智能与机器学习、知识发现、数据挖掘、统计学、模式识别、神经计算学、数据库之间的暧昧关系
  4. stm32定时器中断类型分析
  5. Spring Web应用程序的最大缺陷
  6. html打包成app的缓存问题,webpack 独立打包与缓存处理
  7. linux 文件按时间 函数,[Linux文件属性]使用utime函数操作文件的时间参数
  8. 职业学校计算机主要学什么条件,职业学校计算机教学计划
  9. Vijos P1448 校门外的树【多解,线段树,树状数组,括号序列法+暴力优化】
  10. 力扣题目——143. 重排链表
  11. 利用Java手写简单的httpserver
  12. linux tty 软件包,Linux TTY framework(2)_软件架构
  13. 《SSCOM串口/网络数据调试器》
  14. html登陆滑动验证,js实现滑动滑块验证登录的方法
  15. Win11dll文件缺失怎么修复?Win11系统dll文件丢失的解决方法
  16. MySQL InnoDB引擎如何保证事务特性
  17. PECompact 2.79 Beta D by Sonny27
  18. 【千峰】网络安全学习笔记
  19. 腾讯面试--测试工程师社会招聘面试经历
  20. 蓝桥杯单片机学习13——NE555方波发生器频率测量

热门文章

  1. 用PowerShell做音乐
  2. 交换机的原理及其配置(二)
  3. matlab设计理想带通滤波器 bpf(f_sf_b1_b2),数字滤波器总结
  4. 邮件系统postfix AND 抓包工具
  5. 【python】美女在召唤,python批量采集~
  6. 从0到1使用Kubernetes系列(六):数据持久化实战
  7. 中国桥梁防腐涂料行业研究与投资战略报告(2022版)
  8. 计算机专业浙江考研,2017考研:计算机科学与技术专业考研院校推荐之浙江大学...
  9. 从百度服务看: 百度更懂中国
  10. 使用systemctl和top命令查询服务占用内存不同