• 【Linux】管道命令split、awk、sed【二】


    目录

     什么是Linux 管道命令?

    基本格式:指令1 | 指令2 | …

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

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

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

    💟作者简介:大家好呀!我是路遥叶子,大家可以叫我叶子哦!❣️    
    📝个人主页:【路遥叶子的博客】
    🏆博主信息:四季轮换叶,一路招摇胜!

    🐋希望大家多多支持😘一起进步呀!~❤️
    🌈若有帮助,还请【关注点赞收藏】,不行的话我再努力努力呀!💪
    ————————————————
    🍁欢迎各位的加入,一起壮大社区发展学习,叶子等着你们【叶子瑶池社区】


    前言

     什么是Linux 管道命令?

    1、Linux管道命令是  “ | ”,其作用是用来连接多条指令,前一条指令的输出流会作为后一条指令的操作对象,其命令格式为“指令1 | 指令2 | …”,该命令的后一条指令,必须能够接收标准输入流命令才能执行。

    2、管道命令的操作符是:”|”,它只能处理由前面一条指令传出的正确输出信息,对错误信息是没有直接处理能力的。然后,传递给下一条指令,作为操作对象。

    基本格式:指令1 | 指令2 | …
    【提醒注意】:   

        1、管道命令只能处理前一条指令的正确输出,不能处理错误输出;

        2、管道命令的后一条指令,必须能够接收标准输入流命令才能执行
     


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

    1、实现

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

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

    命令
    英文
    含义
    split -b 10k 文件
    byte
    将大文件切分成若干 10KB 的小文件

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


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

    1、实现

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

    注:测试文件内容 score.txt 请在管道命令(一)中进行查找

    第一步: 搜索 zhangsan lisi 的成绩

    命令
    含义
    awk '/zh|li/' score.txt
    模糊查询

    第二步: 指定分割符, 根据下标显示内容

    选项:
    选项
    英文
    含义
    - F ','
    fifield-separator
    使用 指定字符 分割
    $ + 数字
    获取 第几段 内容
    $0
    获取 当前行 内容
    NF
    fifield
    表示当前行共有多少个字段
    $NF
    代表 最后一个字段
    $(NF - 1)
    代表 倒数第二个字段
    NR
    代表 处理的是第几行

    第三步: 指定分割符, 根据下标显示内容

    选项:

    第四步: 调用 awk 提供的函数

    常用函数如下 :
    函数名
    含义
    作用
    toupper()
    upper
    字符 转成 大写
    tolower()
    lower
    字符 转成小写
    length()
    length
    返回 字符长度

    第五步: if语句 查询及格的学生信息

     选项:

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

    通过 awk 动作 文件名 更加灵活的解析文件。

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

    1、实现

    第一步 : 实现 查询 功能
    第二步 : 实现 删除 功能
    第三步 : 实现 修改 功能
    第四步 : 实现 替换 功能

    第一步: 实现 查询 功能

    可选参数
    # 练习 1 : 列出 1.txt 1~3 行 的数据
    sed -n -e '1,3p' 1.txt
    # 练习 2 :   列出 1.txt 的所有数据
    sed -n -e '1,$p' 1.txt
    # 练习 3 : 列出 1.txt 的所有数据 且 显示行号
    sed -n -e '1,$=' -e '1,$p' 1.txt
    简化版
    cat -n 1.txt
    cat -b 1.txt
    nl 1.txt
    # 练习 4: 查找 1.txt 中包含 eee
    sed -n -e '/eee/p' 1.txt
    # 练习 5 : 列出 01.txt 中包含 eee 的内容, eee 不区分大小写 , 并显示行号
    nl 1.txt | sed -n -e '/eee/Ip'
    nl 1.txt | grep -i eee
    cat -n 1.txt | grep -i eee

    第二步: 实现 删除 功能

    #  练习 1 :   删除 1.txt 中前 3 行数据,并显示行号
    nl 1.txt | sed -e '1,3d'
    # 练习 2 :  保留 1.txt 中前 4 行数据,并显示行号
    nl 1.txt | sed -e '5,$d'
    nl 1.txt | sed -n -e '1,4p'

    第三步: 实现 修改 功能

    # 练习 1: 1.txt 的第二行后添加 aaaaa, 并显示行号
    nl 1.txt | sed -e '2a aaaaa'
    # 练习 2 : 1.txt 的第 1 行前添加 bbbbb ,并显示行号
    nl 1.txt | sed -e '1i bbbbb'

    第四步: 实现 替换 功能

    # 练习 1: 1.txt 中的 kkk 替换成为 mmm, 并显示行号
    nl 1.txt | sed -e 's/kkk/mmm/'
    # 练习 2:  1.txt 中的 1,2 行替换为 aaa, 并显示行号
    nl 1.txt | sed -e '1,2c aaa

    写到最后

    四季轮换,已经数不清凋零了多少, 愿我们往后能向心而行,一路招摇胜!

    🐋 你的支持认可是我创作的动力

    💟 创作不易,不妨点赞💚评论❤️收藏💙一下

    😘 感谢大佬们的支持,欢迎各位前来不吝赐教

  • 相关阅读:
    少儿编程语言C++和python比较
    【无标题】
    记一次Mysql并发死锁
    面向对象的照妖镜——UML类图绘制指南
    SQL优化的一些建议,希望可以帮到和我一样被SQL折磨的你
    idea打开hierarchy面板
    git中如何获取远程仓库的最新代码?
    网络IP地址配置
    高科技电子行业采购供应链管理
    利用maven的dependency插件分析工程的依赖
  • 原文地址:https://blog.csdn.net/zsy3757486/article/details/126845069