• shell 第五天


    第五天shell编程
    三剑客详解
    1 grep 默认不支持扩展表达式, 加-E 如不加-E使用花括号要加转义符{}
    egrep 支持基础和扩展表达式
    2 awk支持egrep所有的正则表达式
    3 sed 默认不支持扩展表达式 加-r 选项开启ERE 。如果
    不加-r 使用花括号要加转义符{}

    A sed 语法格式
    sed [ options] [sed 命令] [输入文件]
    说明:
    1 注意sed软件以及后面选项,sed命令和输入文件,每个元素
    之间都至少有一个空格。
    2 sed -commands
    seded软件内置的一些命令选项,为了和前面的options区分,故称为sed命令
    3 sed
    -commands既可以是单个sed命令,也可以是多个sed命令组合
    4 inPut -file (输入文件)是可选项,sed还能够从标准输入管道获取输入

    sed 的工作原理

    sed读取一行,首先将这行放入到缓冲中
    然后,进行处理,处理完成以后,将缓冲区的内容发送到终端,存储sed读取到的内容缓存区空间称之为:模式空间

    选项说明
    option:-n 默认不输出,常与sed命令p连用
    -e 一行命令语句可执行多条sed命令
    -r 扩展正则表达式,默认情况sed只识别基本正
    则表达式
    -i 修改文件内容,不输出终端
    sed -commands [sed命令]
    a 追加,在指定行后添加一行或多行文本
    c 取代指定的行
    d 删除指定的行
    i 插入,在指定行前添加一行或多行文本
    p 打印模式空间内容,通常p会与选项-n 一起使用

    特殊符号
    ! 对指定行以外的所有行应用命令
    sed的增删改查
    A 增 a 追加文本到指定行后 apend
    i 插入文本到指定行前 insert
    B 删
    d 删除文本
    C 改
    c 新代旧

    sed 文本替换功能
    sed软件80% 的场景就是使用替换功能
    这里用到sed命令
    [options] :
    s 单独使用,将每一行中第一处匹配的
    字符串进行替换==>sed
    g 每一行进行全部替换-->sed命令s的替换
    标志 之一
    i 修改文件内容,注意和sed命令i的区别
    sed -i's/ 目标内容/替换内容 / g'ken.log
    sed -i's#目标内容#替换内容#g'
    D 查
    p (print)输出指定内容,但默认会输出2次匹配结果,因此使用-n
    选项取消默认输出


    I awk详解{
    awk 指令由模式,动作,或者模式和动作的组合组成
    模式=>pattern,可以理解成sed模式匹配
    动作 action。由大括号里面的一条或多条语句组成,语句之间使用分号隔开。
    比如: awk [ options] 'pattern {action}' file
    awk 处理的内容可以标准输入(<),一个或多个文本文件或管道
    比如:
    'pattern {action}'
    解释:pattern,可以理解为条件,找谁
    action ,理解为干啥
    awk 参数
    -F :指定分隔符
    1 记录(record):一行就是一个记录
    2分隔符(field separator)
    进行对记录进行切割所使用的字符
    3 字段(field):将一条记录分割成的每一段
    4 filename :当前处理文件的文件名
    FS :字段分隔符(默认以空格为分隔符)
    NR:记录的编号 awk 每读取一行 NR就加1==
    NF: 字段数量
    ORS:指定输出记录分隔符 默认 是换行
    OFS :输出字段分隔符
    RS : 记录分隔符
    输出字段的表示方式
    $1 $2 ..$n 输出一个指定的字段
    $ NF 输出最后一个字段
    $ 0 输出整条记录

    }

  • 相关阅读:
    webpack打包报错configuration has an unknown property 'mode'
    CSP 201712-4 行车路线(最短路)
    设计模式
    sqlserver 迁移数据
    DataX
    Python 对接WebService
    IOS APP打包流程
    nginxUI
    ROS脚本-下线时判断在线数量进行重拨号
    bash 字符串截取的8种方法
  • 原文地址:https://www.cnblogs.com/gengyanqi/p/10418534.html
Copyright © 2020-2023  润新知