Linux文本处理命令

wc

wc [OPTION]... [FILE]...

  • -l: lines
  • -w: words
  • -c: characters
[root@senlong tmp]# wc /etc/passwd
  38   50 1748 /etc/passwd
[root@senlong tmp]# wc -l /etc/passwd # 文件行数
38 /etc/passwd
[root@senlong tmp]# wc -w /etc/passwd # 文件单词数
50 /etc/passwd
[root@senlong tmp]# wc -c /etc/passwd # 文件字节数
1748 /etc/passwd

cut

cut [OPTION]... [FILE]...

  • -d DELIMITER: 指明切割的分隔符
  • -f FILEDS: 指明字段
    • #: 第#个字段
    • #,#[,#]:离散的多个字段,例如1,3,6
    • #-#:连续的多个字段, 例如1-6
    • 混合使用:1-3,7
  • --output-delimiter=STRING 指明输出的分隔符
[root@senlong tmp]# cut -d: -f1 /etc/passwd # 用:切割文件,取第1个字段
[root@senlong tmp]# cut -d: -f1,7 /etc/passwd # 用:切割文件,取第1和第7个字段
[root@senlong tmp]# cut -d: -f1-3,7 --output-delimiter=' ' /etc/passwd  # 用:切割文件,取第1至第3, 第7个字段,并用指定输出的分隔符

sort

sort [OPTION]... [FILE]...

  • -f: 忽略字符大小写
  • -r: 逆序
  • -t DELIMITER: 字段分隔符
  • -k #:以指定字段为标准排序
  • -n: 以数值大小进行排序
  • -u: uniq,排序后去重
[root@senlong tmp]# sort -t: -k3 -n /etc/passwd # 以:为字段分隔符, 取第3个字段并按数值大小排序
[root@senlong tmp]# sort -t: -k3 -n /etc/passwd | cut -d: -f3 # 排序后再进行切割显示

uniq

uniq [OPTION]... [FILE]...

  • -c: 显示每行重复出现的次数;
  • -d: 仅显示重复过的行;
  • -u: 仅显示不曾重复的行;

Note: 连续且完全相同方为重复

uniq 与 sort -u 的区别:uniq能显示每行重复的次数

[root@senlong tmp]# history | cut -d' ' -f5 | sort | uniq -c
[root@senlong tmp]# history | cut -d' ' -f5 | sort | uniq -d
[root@senlong tmp]# history | cut -d' ' -f5 | sort | uniq -u

练习

  • 以冒号分隔,取出/etc/passwd文件的第6至第10行,并将这些信息按第3个字段的数值大小进行排序;最后仅显示的各自的第1个字段
[root@senlong tmp]# cut -d: -f6-10 /etc/passwd | sort -t: -k3 -n| cut -d: -f1

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏Android相关

Linux编程--获取当前时间

最近在重新编译ijkplayer,并且希望能够打印出来各个阶段的时间,以便对于ijkplayer进一步调优

662
来自专栏Petrichor的专栏

python: json库 & .json文件读写

[1] python读写json文件 [2] 使用 python 读写中文json

582
来自专栏xingoo, 一个梦想做发明家的程序员

【java开发系列】—— JDOM创建、修改、删除、读取XML文件

有很多中操作XML文件的方法,这里介绍一下JDOM的使用方法和技巧。 JDOM下载地址 创建XML文档   XML文件是一种典型的树形文件,每个文档元素都是...

1819
来自专栏运维技术迷

MySQL数据库(八):表记录的基本操作(增删改查)

一、增 insert:增加(条件一条新纪录,默认新添加的记录都添加在已有记录的末尾) 1.格式: 1.1添加新纪录时,只给记录中的某几个字段赋值 inser...

45011
来自专栏Danny的专栏

【MyBatis框架点滴】——MyBatis输出映射

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/huyuyang6688/article/...

782
来自专栏雨尘分享

3. __block  __weak  __strong   这都是做什么的

1723
来自专栏乐沙弥的世界

MongoDB 复合索引

如下图所示,在集合的userid以及score列上创建一个复合索引,其中userid为升序,score为降序

871
来自专栏我的博客

1分钟搞定linux sort命令

sort是用来排序的,默认是按照ascii升序排列 sort -u排序去重 sort -r 默认是升序排列,如果要降序就带上它 sort -o把结果定向到文件(...

2556
来自专栏python3

python类(class)

类(Class): 用来描述具有相同的属性和方法的对象的集合。它定义了该集合中每个对象所共有的属性和方法。对象是类的实例,把所有相似的功能都封装到一个类里,最理...

833
来自专栏腾讯IVWEB团队的专栏

yeoman-generator 中的 run loop 实现

yeoman genenrator 的 run loop,每一个添加进去的方法都会在 generator 调用的时候被调用,而且通常来讲,这些方法是按照顺序调用...

1140

扫码关注云+社区