三剑客grep sed awk

本文介绍了正则表达式的基础和应用场景,包括匹配规则、注意事项和常见符号。接着详细讲解了Linux三剑客grep、sed和awk的用法。grep用于快速过滤,sed擅长内容替换和行操作,awk则用于数据处理和列取。文中还给出了丰富的实例和使用技巧。
摘要由CSDN通过智能技术生成


sh -x 显示脚本执行过程
set命令设置开始debug和结束debug的位置 显示脚本执行过程,解决复杂脚本故障

正则(RE)表达式

应用场景

  • 匹配有规律的:手机、身份证号、日志

规则

注意事项

  • 所有的符号都是英文符号
  • 通过grep 需加上引号
  • 给grep、egrep加上颜色 alias grep='grep --color=auto' alias egrep='egrep --color=auto'
  • 注意系统的字符集:en_US.UTF-8,如果出现问题修改字符集为C export LANG=C
  • 快速掌握正则:配合grep -o参数学习

正则符号

分类 符号 命令
基础正则BRE(basic RE) ^ $ ^$ . \* .* [a-z] [^abc] grep/sed/awk
扩展正则ERE(Extended RE) + | () {} ? egrep(grep -E)/sed -r/awk

基础正则

  • ^:以…开头

grep '^My' oldboy.txt
在这里插入图片描述

  • $:以…结尾

grep '^My' oldboy.txt
在这里插入图片描述
cat -A file展示所有,末尾会显示$符号

  • ^$:空行,这一行中没有任何内容(包括空格)

grep -n '^$' oldboy.txt
在这里插入图片描述
排除文件中的空行:grep -nv '^$' oldboy.txt
在这里插入图片描述

  • .:任意一个字符

grep '.' oldboy.txt
在这里插入图片描述
注意:.不会匹配空行

  • \:转义字符(脱掉马甲打回原形,去除原有特殊含义)

匹配以.结尾的行
grep '\.$' oldboy.txt
在这里插入图片描述

  • 转义字符序列
    1. \n:回车换行
    2. \t:tab键
  • *:前一个字符连续出现0次或0次以上

grep '0*' oldboy.txt
在这里插入图片描述

  • .*:所有内容

grep '.*' oldboy.txt
在这里插入图片描述
注意:.*可以匹配出空行
匹配开始到is结束的内容:grep '^.*is' oldboy.txt
在这里插入图片描述

  • 正则表达式的贪婪性:.*表示所有或*连续出现的时候,表现出尽可能贪婪匹配

在这里插入图片描述
2*:数字2出现了0次0次以上,如果2出现了0次,就相当于是没有匹配空字符

  • [][abc]----1次匹配1个字符,匹配任何一个字符(a或b或c),一般与+号搭配

grep '[abc]' oldboy.txt
在这里插入图片描述
grep -o '[abc]' oldboy.txt:显示匹配过程

  1. 精简写法:[a-z]、[A-Z]、[0-9]:grep '[a-z]' oldboy.txt
    在这里插入图片描述
  2. 不区分大小写写法1:grep '[a-zA-Z0-9]' oldboy.txt
    在这里插入图片描述
  3. 不区分大小写写法2:grep -i '[a-z0-9]' oldboy.txt, -i表示不区分大小写
    在这里插入图片描述
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值