linux命令 (管道命令)

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接: https://blog.csdn.net/Mr_Yang888/article/details/102574377

管道命令

  • cut
  • sort
  • wc
  • uniq
  • tree
  • tr
  • split
  • awk
  • sed
  • grep

1.cut

1.1目标

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

1.2实现

第一步: 截取出1.txt文件中前2行的第5个字符
在这里插入图片描述
head -2 1.txt | cut -c 5

第二步: 截取出1.txt文件中前2行以”:”进行分割的第1,2段内容
在这里插入图片描述

范围控制
在这里插入图片描述
方式一:head -2 1.txt | cut -d ‘:’ -f 1,2
方式二:head -2 1.txt | cut -d ‘:’ -f 1-2

小结

通过 cut 动作 目标文件 可以根据条件 提取对应内容

2.sort

2.1目标

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

2.2路径

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

2.3实现

第一步: 对字符串排序
在这里插入图片描述
第二步: 去重排序
在这里插入图片描述
在这里插入图片描述

第三步: 对数值排序
在这里插入图片描述
默认按照首个字母排序
在这里插入图片描述

  • 升序
    在这里插入图片描述

  • 倒序
    在这里插入图片描述

  • 合并式
    在这里插入图片描述
    第四步:对成绩排序
    在这里插入图片描述

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

sort -t ‘,’ -k2nr score.txt

3.wc命令

3.1目标

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

3.2路径

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

    3.3实现

    第一步: 显示指定文件 字节数, 单词数, 行数信息.
    在这里插入图片描述
    在这里插入图片描述
    第二步: 只显示 文件 的行数
    在这里插入图片描述
    在这里插入图片描述
    第三步: 统计多个文件的 行数 单词数 字节数
    在这里插入图片描述
    第四步: 查看 /etc 目录下 有多少个 子内容
    在这里插入图片描述

    3.4小结

    通过 wc 文件 就可以 统计 文件的 字节数、单词数、行数.

4.uniq

4.1 目标

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

4.2路径

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

4.3实现

第一步:实现去重效果
在这里插入图片描述
在这里插入图片描述
第二步:不但去重,还要 统计出现的次数
在这里插入图片描述
在这里插入图片描述

4.4小结

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

5.tee

5.1目标

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

5.2目标

在这里插入图片描述
将去重统计的结果 放到 a.txt、b.txt、c.txt 文件中
在这里插入图片描述

5.3小结

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

6.tr

6.1目标

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

6.2 路径

6.2 路径

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

6.3

第一步: 实现 替换效果

在这里插入图片描述
将 小写i 替换成 大写 I
#把itheima的转换为大写
把 HELLO 转成 小写
在这里插入图片描述
第二步: 实现删除效果
在这里插入图片描述
需求: 删除abc1d4e5f中的数字
在这里插入图片描述
第三步: 单词计数
在这里插入图片描述

7 split

7.1目标

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

7.2路径

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

7.3 实现

第一步: 按 字节 将 大文件 切分成 若干小文件
在这里插入图片描述
第二步: 按 行数 将 大文件 切分成 若干小文件
在这里插入图片描述

7.4 小结

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

8 awk

8.1 目标

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

8.2 步骤

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

    在这里插入图片描述
    第二步: 指定分割符, 根据下标显示内容
    在这里插入图片描述
    选项
    在这里插入图片描述

第三步: 指定分割符, 根据下标显示内容
在这里插入图片描述
选项
在这里插入图片描述
第四步: 调用 awk 提供的函数
在这里插入图片描述
常用函数如下:
在这里插入图片描述
第五步: if语句 查询及格的学生信息
在这里插入图片描述
选项
在这里插入图片描述

第六步: 段内容 求学科平均分
在这里插入图片描述
在这里插入图片描述

9.sed

9.1目标

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

9.2目标

9.2 路径

  • 第一步: 实现 查询 功能
  • 第二步: 实现 删除 功能
  • 第三步: 实现 修改 功能
  • 第四步: 实现 替换 功能
  • 第五步: 对 原文件 进行操作
  • 第六步: 综合 练习

9.3目标

第一步: 实现 查询 功能
在这里插入图片描述
选项
在这里插入图片描述

  • 练习1 列出 1.txt的 1~5行 的数据

sed -n -e '1,5p' 1.txt 

  • 练习2 列出01.txt的所有数据

sed -n -e '1,$p' 1.txt 

  • 练习3 列出01.txt的所有数据 且 显示行号

可选项 含义
= 打印当前行号
sed -n -e '1,$=' -e '1,$p' 1.txt 

简化版
cat -n 1.txt
cat -b 1.txt
nl 1.txt

  • 练习4: 查找01.txt中包含root行

答案:

sed -n -e '/root/p' 1.txt

  • 练习5 列出01.txt中包含root的内容,root不区分大小写,并显示行号

可选项 英文 含义
I ignore 忽略大小写

答案:

nl 1.txt | sed -n -e '/root/Ip'

nl 01.txt | grep -i root

cat -n 01.txt | grep -i root

  • 练习6 查找出1.txt中 字母r后面是多个t的行,并显示行号

可选项 英文 含义
-r regexp-extended 识别正则

答案:

nl 01.txt | sed -nr -e '/r+t/p'

或者

sed -nr -e '/r+t/p' -e '/r+t/=' 01.txt

第二步: 实现 删除 功能

  • 练习1 删除01.txt中前3行数据,并显示行号

可选项 英文 含义
d delete 删除指定内容

答案:

nl 01.txt | sed -e '1,3d'

  • 练习2 保留1.txt中前4行数据,并显示行号

答案:

nl 01.txt | sed -e '5,$d'

nl 1.txt | sed -n -e '1,4p'

第三步: 实现 修改 功能

  • 练习1: 在01.txt的第二行后添加aaaaa,并显示行号

参数 英文 含义
i insert 目标前面 插入内容
a append 目标后面 追加内容

答案:

nl 01.txt | sed -e '2a aaaaa'

  • 练习2 在1.txt的第1行前添加bbbbb,并显示行号

答案:

nl 01.txt | sed -e '1i bbbbb'

第四步: 实现 替换 功能

  • 练习1 把1.txt中的nologin替换成为huawei,并显示行号

英文 含义
s/oldString/newString/ replace 替换

答案:

nl 1.txt | sed -e 's/nologin/huawei/'

  • 练习2 把01.txt中的1,2行替换为aaa,并显示行号

选项 英文
2c 新字符串 replace 使用新字符串 替换 选中的行

答案:

nl passwd | sed -e '1,2c aaa'

第五步: 对 原文件 进行操作

  • 练习1 在01.txt中把nologin替换为 huawei

参数 英文 含义
-i in-place 替换原有文件内容

答案:

sed -i -e 's/nologin/huawei/' 01.txt

  • 练习2 在01.txt文件中第2、3行替换为aaaaaa

答案:

sed -i -e '2,3c aaa' 01.txt

注意:在进行操作之前,最好是对数据进行备份,放置操作失误,数据无法恢复!

  • 练习3 删除01.txt中前2行数据,并且删除原文件中的数据

答案:

sed -i -e '1,2d' 01.txt


nl passwd 查看数据

第六步: 综合 练习

  • 练习1 获取ip地址

答案:

ifconfig eth0 | grep "inet addr" | sed -e 's/^.*inet addr://' | sed -e 's/Bcast:.*$//' 

  • 练习2 从1.txt中提出数据,匹配出包含root的内容,再把nologin替换为itheima

答案:

nl 01.txt | grep 'root' | sed -e 's/nologin/itheima/'

或者

nl 01.txt | sed -n -e '/root/p' | sed -e 's/nologin/itheima/'

或者

nl 01.txt | sed -n -e '/root/{s/nologin/itheima/p}' #只显示替换内容的行

  • 练习3  从1.txt中提出数据,删除前2行,并把nologin替换为itheima,并显示行号

答案:

nl 01.txt | sed -e '1,2d' | sed -e 's/nologin/itheima/'

猜你喜欢

转载自blog.csdn.net/Mr_Yang888/article/details/102574377