设为首页 收藏本站
查看: 958|回复: 0

Linux Shell之十 sed与awk-Just For Fun!

[复制链接]

尚未签到

发表于 2018-8-17 07:40:13 | 显示全部楼层 |阅读模式
  设计script时,有时候需要修改脚本,例如删除或置换某些关键词。像这种在script执行过程动态修改文件的做法,称为流编辑。具有流编辑能力的工具,称为流编辑器。sed是这方面的强者。另外script执行时可能要制作报表,呈现各字段信息,awk完美解决。
  一、正则表达式
  正则表达式是组成“样式”的基本语法,而“样式”是运用sed和awk必备的能力。sed和awk相同的运行方式是:只要符合“样式”的数据行,就对它执行指定的“操作”。
  什么是正则表达式?
  正则表达式是一种描述的方法,一种小型的语言,可表示某种样式或若干种样式的组合,它的威力在于仅需几个简单的字符,便可代表许多字符串共同的样子。
  1、. 代表任意字符
  .a. 代表中间为a,两边随意字符的3个字符。(若要对比.本身需要用\转义)
  2、^ 代表在行首
  ^abc  abd应该出现在行首。"abc,hello"和"hello abc" 前者符合后者不符合
  3、$ 代表在尾部
  $abc  abd应该出现在行尾。"abc,hello"和"hello abc" 后者符合前者不符合
  4、[...] 字符集合
  [...] 代表字符 串行中的一个字符 [aBc]代表a或B或c。[A-Z]一个大写[^A-Z]除了大写之外的一个字符。
  5、*出现0个以上
  a*c可以是abc、abbc、abbbc、aSJKSKBKc.....
  6、\{...\}指定符合的个数
  \{3,5\}前边的字符有3~5个。[a-z]\{3,5\}代表以小写字母组成的字符串,长度为3~5个
  7、\(..\)把对比符合的字符串暂时保存起来
  a\(..\)b要保存a、b之间的2个字符,若要提取保存的字符串,可用位置参数,\1代表第一个保存的字符串,\2代表第二个保持的字符串。
  二、扩展正则表达式
  RE字符  意义与范例
  +       重复1个或1个以上的前一个RE字符
  egrep 'go+d' file 搜寻范围是 god good goood gooood......等
  ?0个或1个的前一个RE字符
  egrep 'go?d' file 搜寻范围 god good
  |       用或(or)的方式找出字符串
  egrep 'g(la|oo)d file 搜寻范围 glad good
  ()+     多个重复群组的判别
  echo "AxyzxyzxyzxyzC" |egrep 'A(xyz)C' 意思是A开头,C结尾,中间有一个以上的"xyz"字符串的意思
  注意:  !在正规表达式中不是特殊字符,如果要查包含!与

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.iyunv.com/thread-552807-1-1.html 上篇帖子: 利用SqlMap系统交互shell-Elapse 下篇帖子: 自动监控主从MySQL同步的SHELL脚本
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表