2018.8.16,预习笔记,正则介绍

  1. 正则介绍_grep(上)(中)(下)
  2. sed(上)(下)
  3. awk(上)(下)
  4. 扩展,命令格式:把一个目录下,过滤所有*.php文档中含有eval的行,

 

一.正则介绍_grep(上)(中)(下)

  • 什么是正则

2a78f0de5f1101678caf4a9296f37f91c0d.jpg

  • grep工具介绍(上)

e52014a4039f518737415f8cdfb077d8210.jpg

  • 使用案例

9bc3e6eef8cb551104beb58da4cb9ac7c5c.jpg

  • #grep过滤会默认把过滤出来的内容标红

dc31215de38731510321641c67b16e33925.jpg

  • -c 可以查看筛选内容行数

e74e11e59a612c505abd430930400f14c28.jpg

  • -n 显示查看内容的行号,在第几行

a48cf9ed45c4aa4359af6ac06eb5f3aa979.jpg

  • -i 不区分大小写

52784057257112deba0ff680a129ba00207.jpg

  • -v 取反,把除了搜索的关键词内容显示出来

37cc96cb29540ad1eac49670f9b188477e1.jpg

  • -r 用来搜索父级目录及以下所有文件带有关键词内容

d4166528415bd7769e359fa7b69d5f863b2.jpg

595f8b8aaea267eaf77b2d72490b52ffb07.jpg

  • 不加-r 无法对目录进行操作

9d65500c667552092eab02dc4ab2f6f493a.jpg

  • -A 后面跟数字,过滤出符合要求的行以及下面n行

c4d29e61b4980f796121b7168934414e9a9.jpg

  • -B 过滤出符合要求的行及上面n行

c9adb77e3b98bbeaab766e8acd751d7f702.jpg

  • -C 过滤出符合要求的行及上下各n行

b8936643b4b0fac5585a68d38cf02f948cc.jpg

  • grep工具介绍(中)
  • 示例:

12f054e85eaeeffd394d764348266d6cfa0.jpg

  • #grep '[0-9]' passwd 过滤出该范围的内容

ee1f191ee3b17cd300ada20a3a953a93712.jpg

  • #grep -vn '[0-9]' /etc/inittab 将除了带有该范围的内容剩下的过滤出来

b7bcb6dca41b76b44f82e699be622461384.jpg

  • #grep -nv '^#' inittab 将不以#开头的内容过滤出来

a89372134ba001c25e5d111e706cf96540b.jpg

  • #grep '[^0-9]' inittab 将不带有非[0-9]的内容全部过滤出来

d7bdded11ced16c73ff9d4e409c80c50941.jpg

  • #grep 'r.o' passwd ,把带有r 或者o的内容过滤出来, .  表示或者

e758ced10d3c0a674f16684dfcbe3c089dc.jpg

  • #grep 'o*o' passwd ,*代表任意个

3fb2d89d818236c1207ef3305bbd89baee3.jpg

  • #grep '.*' 表示,任意个任意字符

06a06f8daa2dc5e96b9e694e142a52ca68c.jpg

  • #grep 'o\{2\}' passwd 表示,把出现2次o的内容过滤出来

ed01e237d81428142f818c675828ae05ce0.jpg

  • #egrep 'o{2}' passwd 表示,把出现2次o的内容过滤出来

a809507f2e2d2de9e571f2ef34a3c929b90.jpg

  • #egrep 'o+o' passwd 表示,把o加1次以上o的内容过滤出来

f078cd87e424b020ee832577c967f1e9ecf.jpg

  • #egrep 'o?t' passwd 表示,把?前面o出现[0-1]次的内容过滤出来0f6ef278d5688de4b361a99920eaccf566a.jpg
  • #egrep 'root|nologin' passwd 表示,把带有root或者nologin的内容过出来, | 表示或者

66ee460a3c3856bf34cce5490ef9b87adce.jpg

  • #egrep '(oo){2}' passwd 表示,把出现两次oo的内容过滤出来

2cdc06f5c5ff10a0f612ef2c68571ad690d.jpg

 

二.sed(上)(下)

a38f343e6663605d5ea804e135032d20f52.jpg

1.sed 匹配功能

  • #sed -n ‘/root/’ p test.txt 将带有root的内容打印出来

92d17f20669a50bb45e498cd1e24246963e.jpg

  • 同时支持 . *

debb7a14c53687469bac869d4817e9dc97f.jpg

6f251bb82ebacb8d6f21d3d9960bdcde218.jpg

  • 还有 + 不过需要脱译,或者在前面选项加r。

f1ce31b22ea73734034cf81909e42de2cf5.jpg

  • 支持{ }

a4199de33d16ec46823100f4b6678d0028a.jpg

  • 支持 | 

b78ca006fc4b7345b1ee008c75ea6d05108.jpg

2.sed 打印行的内容

  • 打印指定行内容

c91b703c5d1e832515ae2ebb8c10ec416c7.jpg

  • 打印指定范围内容

7d2cf6098397f44db668ebb568cc43e9727.jpg

13183a939c46dfdacf8b874599ec5a7aca3.jpg

  • 打印全部内容

fa8c88d18756435eaf2177a93a5af07daa7.jpg

  • 匹配内容不区分大小写,加I 

47fc47136adde0c708e92fb6e111ed2e174.jpg

3.sed -e 同时多个表达式操作执行

 

cda29668cd178dbd90d508fdee8a7136d94.jpg

c4255b33b5c29b8d792424b4638ede4f38d.jpg

 

4.sed 删除指定的行

c040d54f5995d5f0764b5e52ec20b2a5757.jpg

  • 删除指定行数,不会删除文件内容,只是打印出来

a35a781c1a255959fa5f82b45bac060d996.jpg

  • 加  -i  选项,会把文件内容删除

3ff9f47090f9d441f8f70e93cbdc82dc46b.jpg

  • 把指定内容相关的行删除

e61bac29959d73b43c996555caa9e2e988a.jpg

5.sed 替换功能

  • 替换指定范围的指定内容替换

248271c43fc7e7659724cdb1ac97feaa6bc.jpg

  • 查找替换可以使用正则表达式的,可以识别 . * + | 等

d959786478d4749f3f1ce19505fd627472f.jpg

  • 支持 | ,示例如下:

b60fb9a3af55ec061ee8490e62ba0fbc52c.jpg

  • 将指定内容删除,替换成空即可

6f5fa77d12b0422f6f1b6c5ad03613e7b99.jpg

  • 在所有行前面加指定字符串

a491a88dcd585f8836ef66dbbae6536f8f0.jpg

 

三.awk(上)(下)

b6a595272a5c83a51375c1b46b01f6926a1.jpg

1.awk 分段操作功能

  • 指定分隔符,并把第一段打印出来,不会改动文件内容

89bf501ca7f1f07d211bbffa9f585ed86d1.jpg

  • 将所有内容打印出来

f12c6b66df170b6aca4c20ecd94a6bedd2b.jpg

  • awk 没有指定分隔符号,则会默认用空格或者空白字符为分隔符来打印

597f8cea43b6652bc16eb1804fb3ae223d5.jpg

  • 打印多段内容

e3c6b7897a35146730cd651ac67e0559eb9.jpg

  • 更改替换指定分割符号

31404beb19c4d3888489f424cfb3a37e73d.jpg

2.awk 匹配功能

  • 将带有指定字符的行匹配出来

12b2cfd5283bc0ba63f15ea6c1135c61ec7.jpg

  • 将第一段带有指定字符的行匹配出来

d495de4a963e11777409b2e0b64c6a7b0c2.jpg

  • 默认支持特殊字符,支持正则表达式

37ac34c87a5a88eaecd0935b9cf6c6467d0.jpg

  • 支持多个表达式

1f2b8798a76c47c79da2d38361a459f8ce3.jpg

3.awk 针对数学表达式的操作

  • 数学表达式== ,>= ,

7512fbf381ef70a85a489093895a1150d1f.jpg

  • 数学表达式 != 不等于

0e5b4df28ccffd4a27ea24f274441352e6d.jpg

  • 数学表达式< ,= 

7bf57d6405a67adcf32d8e6a1d6b667842c.jpg

  • 大于并小于指定数字

ffeed6ee88b90d48863a07476ec8e8b84f9.jpg

  • || 满足一个条件或者另外一个条件内容

06491ab8c44a13fa0c266a6cc812d8aa315.jpg

  • OFS 内置变量,更改指定分隔符,

46209a9c06c493b1bd4b6e5301808ab4af4.jpg

  • NR 内置变量,表示行,打印出来

0c64c4af79d9edf03aaf8a1b57da03c97d3.jpg

  • NF 内置变量,表示段,打印出来

102de473b8d1bab92c810d6a6c3506688af.jpg

  • 内置变量与数学表达式组合命令格式,示例:
  • <= ,&&

c0116b4406c5e9ee5150823ab86ba5bb235.jpg

3e011a6ac27203229a70b4d7bfaccae2a88.jpg

44d63c2dd870141502a730699f39ffbb64c.jpg

  • = 这个是赋值,== 才是等于,匹配

322fb79eb51ac0322343523bf4d2d0d39ad.jpg

  • tot 求和

8cf6823b05540bbf5ffae2105c63411bc4b.jpg

  • if 判断

8c7506530317666fd1b423f1140bcfc18b9.jpg

五. 扩展

  • 把一个目录下,过滤所有*.php文档中含有eval的行

grep -r --include="*.php" 'eval' /data/
 

 

 

转载于:https://my.oschina.net/u/3912766/blog/1929319

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值