Linux管道相关命令(腾讯内部资料,轰动IT界的一篇文章,看哭了10亿人!!!)

1.管道命令大全

1.1 cut 1.2 sort 1.3 wc 1.4 uniq 1.5 tee 1.6 tr 1.7 split 1.8 awk 1.9 sed

1.1 cut

cut 根据条件 从命令结果中 提取 对应内容

举个栗子:截取出1.txt文件中前2行的第5个字符

准备工作:
文件: vim 1.txt
内容:
111:aaa:bbb:ccc
222:ddd:eee:fff
333:ggg:hhh
444:iii

命令 含义

cut 动作 文件 从指定文件 截取内容

参数 英文 含义
-c characters 按字符选取内容

head -2 1.txt | cut -c 5

栗子2:截取出1.txt文件中前2行以”:”进行分割的第1,2段内容

参数 英文 含义
-d ‘分隔符’ delimiter 指定分隔符
-f n1,n2 fields 分割以后显示第几段内容, 使用 , 分割

范围控制
范围 含义

n 只显示第n项
n- 显示 从第n项 一直到行尾
n-m 显示 从第n项 到 第m项(包括m)

head -2 1.txt | cut -d ‘:’ -f 1,2
head -2 1.txt | cut -d ‘:’ -f 1-2

1.2 sort

sort可针对文本文件的内容,以行为单位来排序。

路径

  • 第一步: 对字符串排序
  • 第二步: 去重排序
  • 第三步: 对数值排序
  • 第四步: 对成绩排序

实现

第一步: 对字符串排序

[root@node01 tmp]# cat 2.txt
banana
apple
pear
orange
pear

[root@node01 tmp]# sort 2.txt
apple
banana
orange
pear
pear

第二步: 去重排序

参数 英文 含义

-u unique 去掉重复的

它的作用很简单,就是在输出行中去除重复行。

[root@node01 tmp]# sort -u 2.txt
apple
banana
orange
pear

第三步: 对数值排序

参数 英文 含义
-n numeric-sort 按照数值大小排序
-r reverse 使次序颠倒

  • 准备数据

    [root@node01 tmp]# cat 3.txt
    1
    3
    5
    7
    11
    2
    4
    6
    10
    8
    9

  • 默认按照字符串排序

    [root@node01 tmp]# sort 3.txt
    1
    10
    11
    2
    3
    4
    5
    6
    7
    8
    9

  • 升序
    [root@node01 tmp]# sort -n 3.txt
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11

  • 倒序
    [root@node01 tmp]# sort -n -r 3.txt
    11
    10
    9
    8
    7
    6
    5
    4
    3
    2
    1

  • 合并式
    [root@node01 tmp]# sort -nr 3.txt
    11
    10
    9
    8
    7
    6
    5
    4
    3
    2
    1

第四步: 对成绩排序

  • 准备工作
    vim score.txt

    zhangsan 68 99 26
    lisi 98 66 96
    wangwu 38 33 86
    zhaoliu 78 44 36
    maq 88 22 66
    zhouba 98 44 46

参数 英文 含义

-t field-separator 指定字段分隔符
-k key 根据那一列排序

根据第二段成绩 进行倒序显示 所有内容

sort  -t  ' '  -k2nr  score.txt 

1.3 wc命令

目标:显示指定文件 字节数, 单词数, 行数 信息.

路径

  • 第一步: 显示指定文件 字节数, 单词数, 行数 信息
  • 第二步: 只显示 文件 的行数
  • 第三步: 统计多个文件的 行数 单词数 字节数
  • 第四步: 查看 /etc 目录下 有多少个 子内容

实现
第一步: 显示指定文件 字节数, 单词数, 行数信息

命令 含义

wc 文件名 显示指定文件 字节数, 单词数, 行数 信息

[root@hadoop01 export]# cat 4.txt
111
222 bbb
333 aaa bbb
444 aaa bbb ccc
555 aaa bbb ccc ddd
666 aaa bbb ccc ddd eee

[root@hadoop01 export]# wc 4.txt
6 21 85 4.txt

第二步: 只显示 文件 的行数

参数和含义

[root@hadoop01 export]# wc 4.txt
6 21 85 3.txt

第三步: 统计多个文件的 行数 单词数 字节数

[root@hadoop01 export]# wc 1.txt 2.txt 3.txt
4 4 52 1.txt
11 11 24 2.txt
6 21 85 3.txt
21 36 161 总用量

[root@hadoop01 export]# wc *.txt
4 4 52 1.txt
11 11 24 2.txt
6 21 85 3.txt
6 6 95 score.txt
27 42 256 总用量

第四步: 查看 /etc 目录下 有多少个 子内容

[root@hadoop01 export]# ls /etc | wc -w
240

1.4 uniq

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

目标

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

路径

  • 第一步:实现去重效果
  • 第二步:不但去重,还要 统计出现的次数

实现

** 第一步:实现去重效果**

 命令                                英文                            含义       

uniq [参数] 文件 unique 唯一 去除重复行

排序并去重
[root@hadoop01 export]# cat 5.txt | sort | uniq

第二步:不但去重,还要 统计出现的次数

参数 英文 含义
-c count 统计每行内容出现的次数

[root@hadoop01 export]# cat 5.txt | sort | uniq -c

小结
通过 uniq [选项] 文件 就可以完成 去重行 和 统计次数

1.5 tee

目标

  • 通过 tee 可以将命令结果 通过管道 输出到 多个文件

实现
命令和含义

  • 将去重统计的结果 放到 a.txt、b.txt、c.txt 文件中

cat 5.txt | sort | uniq -c | tee a.txt b.txt c.txt

小结
通过 tee 可以将命令结果 通过管道 输出到 多个文件

1.6 tr

目标

  • 通过 tr 命令用于 替换删除 文件中的字符。

路径

  • 第一步: 实现 替换 效果
  • 第二步: 实现 删除 效果
  • 第三步: 完成 单词计数 案例

实现

第一步: 实现 替换效果

Linux管道相关命令(腾讯内部资料,轰动IT界的一篇文章,看哭了10亿人!!!)_第1张图片

第二步: 实现删除效果

Linux管道相关命令(腾讯内部资料,轰动IT界的一篇文章,看哭了10亿人!!!)_第2张图片

第三步: 单词计数

Linux管道相关命令(腾讯内部资料,轰动IT界的一篇文章,看哭了10亿人!!!)_第3张图片

1.7 split

目标
通过 split 命令将大文件 切分成 若干小文件

路径

  • 第一步: 按 字节 将 大文件 切分成 若干小文件
  • 第二步: 按 行数 将 大文件 切分成 若干小文件

** 准备工作:**
vim score.txt

zhangsan 68 99 26
lisi 98 66 96
wangwu 38 33 86
zhaoliu 78 44 36
maq 88 22 66
zhouba 98 44 46

实现

** 第一步: 按 字节 将 大文件 切分成 若干小文件**

在这里插入图片描述

** 第二步: 按 行数 将 大文件 切分成 若干小文件**

在这里插入图片描述

小结

  • 通过 split 选项 文件名 命令将大文件 切分成 若干小文件

1.8 awk

目标

  • 通过 awk 实现 模糊查询, 按需提取字段, 还可以进行 判断 和 简单的运算等.

步骤

  • 第一步: 模糊查询
  • 第二步: 指定分割符, 根据下标显示内容
  • 第三步: 指定输出字段的分割符
  • 第四步: 调用 awk 提供的函数
  • 第五步: 通过if语句判断$4是否及格
  • 第六步: 段内容 求和

实现

第一步: 搜索 zhangsan 和 lisi 的成绩

         命令                                                                    含义     

awk ‘/zhangsan|lisi/’ score.txt 模糊查询

第二步: 指定分割符, 根据下标显示内容
Linux管道相关命令(腾讯内部资料,轰动IT界的一篇文章,看哭了10亿人!!!)_第4张图片

第三步: 指定分割符, 根据下标显示内容
Linux管道相关命令(腾讯内部资料,轰动IT界的一篇文章,看哭了10亿人!!!)_第5张图片

第四步: 调用 awk 提供的函数
Linux管道相关命令(腾讯内部资料,轰动IT界的一篇文章,看哭了10亿人!!!)_第6张图片

第五步: if语句 查询及格的学生信息
Linux管道相关命令(腾讯内部资料,轰动IT界的一篇文章,看哭了10亿人!!!)_第7张图片

** 第六步: 段内容 求学科平均分**

Linux管道相关命令(腾讯内部资料,轰动IT界的一篇文章,看哭了10亿人!!!)_第8张图片

1.9 sed

目标

  • 通过 sed 可以实现 过滤替换 的功能.

实现 查询 功能

Linux管道相关命令(腾讯内部资料,轰动IT界的一篇文章,看哭了10亿人!!!)_第9张图片

你可能感兴趣的:(linux基础)