1、cat application-test.properties

spring.datasource.ip.map.driverClassName=com.mysql.jdbc.Driver
spring.datasource.ip.map.url=jdbc:mysql://192.168.12.22:3306/test?useUnicode=true&characterEncoding=utf-8&autoReconnect=true&zeroDateTimeBehavior=convertToNull
spring.datasource.ip.map.username=root
spring.datasource.ip.map.password=123456

需要将文件中这行

spring.datasource.ip.map.url=jdbc:mysql://10.2.11.22:3306/test?useUnicode=true&characterEncoding=utf-8&autoReconnect=true&zeroDateTimeBehavior=convertToNull

替换为

spring.datasource.ip.map.url=jdbc:mysql://10.5.45.134:3306/yukw?useUnicode=true&characterEncoding=utf-8&autoReconnect=true&zeroDateTimeBehavior=convertToNull

sed替换语句

sed -i '/spring.datasource.url/s/[0-9]\{1,3\}.[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}:[0-9]\{1,4\}\/.*?/10.5.45.134:3306\/yukw?/g' application-production.properties

2、cat database.php

................... 略 .......................return [
// 数据库类型
'type'            => 'mysql',
// 服务器地址
'hostname'        => '192.168.35.101',
// 数据库名
'database'        => 'wxfat',
// 用户名
'username'        => 'wxfat',
// 密码
'password'        => 'test_wxfat',
// 端口
'hostport'        => '3306',
// 连接dsn
'dsn'             => '',................... 略 .......................

将文件中 database对应的用户名 wxfat 修改为 yukw

$ sed -rn "s#('database'[ ]*=>)(.*$)#\1 'yukw',#gp" database.php
'database'        => 'yukw',

3、awk 

简写 实际 功能
i++ i=i+1  统计次数,计数
sum=sum+??  sum+=???  求和,累加

需求:
1、统计aa.txt中 www.baidu.com、aa.baidu.com、bb.baidu.com三个域名分别出现的次数
分析:
2、实际上是统计www、aa、bb出现的次数

$ cat aa.txt
http://www.baidu.com/index.html
http://aa.baidu.com/index.html
http://www.baidu.com/index.html
http://www.baidu.com/index.html
http://aa.baidu.com/index.html
http://www.baidu.com/index.html
http://bb.baidu.com/index.html
$ awk -F'[/.]+' '{array[$2]++}END{for (i in array) print i,array[i]}' aa.txt | sort -rnk2
www 4
aa 2
bb 1sort为排序
-r 倒叙  n根据数字   -k2 表述根据第二列

awk的 for (i in array)  这种循环模式只用于数组,还有另外一种循环模式,在第四种可以看到
for(i=1;i<101;i++)
## array[ ]++ 你要统计什么 [ ]里面就是什么(某一列)
## 比如统计nginx access.log中ip出现的次数,就是 array[$1]++

四、求和

$ awk 'BEGIN{for(i=1;i<101;i++) sum+=i;print sum}'
5050

注意:awk使用多个条件的时候,第1个条件可以放在 '条件{动作}' 第二个条件 一般使用if

五、替换匹配行的下一行

处理办法:
先匹配到 NsyConfig行,然后替换下一行的内容

sed -i '/NsyConfig/{n;s/"Domain".*$/"Domain": "https:\/\/www.baidu.com",/g;}' applicationconfig.json## 自己研究的
[root@ZS-Jenkins02 resources]# sed -rn '/master/,+3p' application-test.yml master:url: jdbc:mysql://127.0.0.1:3306/education?characterEncoding=UTF-8&useUnicode=true&useSSL=false&tinyInt1isBit=false&allowPublicKeyRetrieval=true&serverTimezone=Asia/Shanghai&rewriteBatchedStatements=trueusername: rootpassword: 'we@tencent'
[root@ZS-Jenkins02 resources]# sed -rn '/master/,+3s/username.*$/username: root/p' application-test.yml username: root
[root@ZS-Jenkins02 resources]# sed -rn '/master/,+3s/password.*$/password: yukw.com/p' application-test.yml password: yukw.com

六、竖线 |

竖线在中括号[]中没有 或 的意思,在小括号()中有

七、对日志常用的统计、求和、判断

查询mongodb日志 时间大于3000ms的语句
awk '$NF~/ms$/{print $NF, $0}' shard32.log | awk -F'm' '{if($1 > 3000) print $0}'$ awk '$NF~/ms$/{print $NF, $0}' shard32.log | awk -F'm' '{if($1 > 5000) print $0}' | wc -l
53$ awk '$NF~/ms$/{print $NF, $0}' shard32.log | awk -F'm' '{if($1 > 5000) print $0}' | sed -n '$='
53统计nginx访问流量,利用awk求和
awk '{sum+=$10}END{print sum}' access.log统计nginx访问日志中 每个ip的访问次数
awk '{array[$1]++}END{for(i in array)print i,array[i]}' access.log | sort -rnk2统计nginx访问日志中 每个ip的访问次数,再加上过滤条件
awk '$1~/^103/{array[$1]++}END{for(i in array)print i,array[i]}' access.log | sort -rnk2 | column -t

 八、查看长度小于6的单词

# echo "i am oldboy teacher welcome to oldboy training class." | awk -F'[. ]+' '{for(i=1;i<=NF;i++)print $i}'
i
am
oldboy
teacher
welcome
to
oldboy
training
class# echo "i am oldboy teacher welcome to oldboy training class." | awk -F'[. ]+' '{for(i=1;i<=NF;i++)if (length($i)<6) print $i}'
i
am
to
class

附加知识:

cat -A  显示文件中隐藏的标记
grep -o  显示匹配过程2) 你可认知[]?[]里面的内容去掉特殊含义[a-z|A-Z|0-9]  匹配大小写字母和数字,匹配 |[^abc]  取反,排除  排除a或b或c的内容,匹配a或b或c之外的内容

取IP
# ip a s eth0 | sed -n '3p' | sed -r 's#(.*t )(.*)(/.*)#\2#g'
精简   # ip a s eth0 | sed -rn '3s#(.*t )(.*)(/.*)#\2#gp'
# ip a s eth0 | awk -F'[ /]+' 'NR==3{print $3}'

其他学习地址:

sed 之 & 符号 - LiuYanYGZ - 博客园

Sed、Awk实用正则替换相关推荐

  1. 三剑客grep sed awk

    三剑客 正则(RE)表达式 应用场景 规则 注意事项 正则符号 基础正则 扩展正则 正则实例 正则 VS 通配符 三剑客 grep sed sed核心应用 awk awk执行过程 内置变量 awk 正 ...

  2. awk,sed,grep运用正则与扩展正则

    1.正则与扩展正则的概述 2.示例 grep 过滤工具 ---格式:grep [选项] "正则表达式" 文件 egrep 过滤工具 ---格式:egrep [选项] "扩 ...

  3. linux三剑客及正则表达(grep,sed,awk)

    首先我们现在知道Linux下一切皆文件,对Linux的操作就是对文件的处理,那么怎么能更好的处理文件呢?这就要用到我们上面的三剑客命令. 在说这三个命令前我们要插入一个小插曲就是"正则表达式 ...

  4. php正则过滤%3e,实用的替换或者过滤数据正则表达式php代码

    实用的替换或者过滤数据正则表达式php代码 蓝叶    网站设计    2021-02-01    137    0评论 通过php代码来实现一些功能时或通过php代码来实现采集数据时,采集到的数据或 ...

  5. Shell ❀ 三剑客 - Grep + Sed + Awk

    文章目录 八.三剑客 - Grep + Sed + Awk 1.Grep - 过滤 1.1 常用grep参数 1.2 使用方法 2.Sed - 行匹配 2.1 执行原理 2.2 常见语法 2.3 使用 ...

  6. Linux 正则表达式 流编辑之sed awk

    一.   命令行中的正则特殊符号 1 [:alnum:]等价于a-zA-Z 0-9 2 [:alpha:]等价于a-zA-Z 3 [:digit:]等价于0-9 4 [:lower:]等价于a-z 5 ...

  7. linux下查找文件及文件内查找内容--find/grep/sed/awk

    1.find 查找到想要的文件或目录 格式:find  [path]   [-OPTION]  [-exec |grep  |xargs   -ok  -print   | --]   [comman ...

  8. Linux三剑客命令详解(grep sed awk )

    下面所说的是Linux中最重要的三个命令在业界被称为"三剑客",它们是awk,sed,grep. 我们现在知道Linux下一切皆文件,对Linux的操作就是对文件的处理,那么怎么能 ...

  9. sed awk 笔记(二)

    都说sed awk 运维人员的必备工具.今天起开始整理相关笔记.首先认识一下这两个东西. 共性:使用相同的语法 [address]/pattern/action/flag 都是面向字符流的.从一个文件 ...

最新文章

  1. 面试不怂之redis与缓存大全
  2. (POJ 3026) Borg Maze 最小生成树+bfs
  3. 终于来热风了,又一次感觉到什么叫温暖!
  4. 裂变实操:1个模型+4个步骤,教你打造流量的自循环系统
  5. android显示服务器端文件夹,Android上传文件到服务端并显示进度条
  6. 培训机构还能不能信任?
  7. 蓝桥杯 ADV-181 算法提高 质因数2
  8. 推荐 一个PDF转Word内容不匹配、乱码的解决方法
  9. PMBOK2008中的三种沟通方式(草稿版)
  10. 在ubuntu用audacity把音频转换成256kbps,单声道。(亲测有效)
  11. DBveaver的一些使用心得
  12. 怎么学习英文--英国人教你如何学习英文
  13. 林轩田机器学习技法(Machine Learning Techniques)笔记(一)
  14. 西雅图又一家科技公司准备上市!
  15. 有效 360 度反馈系统的关键
  16. TransUNet阅读笔记与训练尝试
  17. [蛋蛋涂鸦]沪江小D清新桌面壁纸
  18. Java项目—健身房管理系统(附源码+文档)
  19. 微信小程序—本地存储
  20. Winform控件开发(15)——contextMenuStrip(史上最全)

热门文章

  1. [230]连接Redis后执行命令错误 MISCONF Redis is configured to save RDB snapshots
  2. 详解MySQL字符串函数TRIM()、填充函数LPAD()、RPAD()、字符串长度LENGTH()用法(三)
  3. 第三十届ACM国际大学生程序设计竞赛全程采访 - 赴美首日
  4. 特征共线性与神经网络
  5. python绘制柱状图设置间隔时间,Python数据可视化:5种绘制柱状图表的方法(附源码)...
  6. 【信息技术】【2007】遮挡与杂乱环境中的车辆跟踪研究
  7. 大数据运维--Linux安装java
  8. nvidia frameview sdk有什么用_继续耍猴!NVIDIA承认芯片短缺,显卡缺货涨价要维持数月...
  9. 蝙蝠侠中的oracle,蝙蝠侠为什么叫老爷 看看他的身价就知道了
  10. 安卓TextView 文字方向 水平朝左