300字范文,内容丰富有趣,生活中的好帮手!
300字范文 > Linux三剑客(grep sed awk)

Linux三剑客(grep sed awk)

时间:2022-06-14 21:16:29

相关推荐

Linux三剑客(grep sed awk)

Linux三剑客

正则表达式 正则表达式(regular expression)?

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

使用一些符号表达一些重复出现、大小写、开头/结尾含义;

应用场景

Linux三剑客使用,开发语言;

过滤有规律的内容,尤其是日志;

正则注意事项

所有符号为英文符号;

学习正则,通过grep命令学习,grep加上单引号;

给grep、egrep加上颜色alias grep=’grep --color=auto’alias egrep=’egrep --color=auto’;

注意系统的字符集:en_US.UTF-8,如出现问题修改字符集为C export LANG=C;

配合grep -o(只显示匹配的内容)参数学习

正则符号

基础正则:

^ 以……开头的行 例:grep ‘^og’my.txt 从my.txt中找以og开头的行;$ 以……结尾的行 例:grep ‘og$’my.txt 从my.txt中找以og结尾的行;^$ 空行 例:grep -nv ‘^$’my.txt 排除空行. 任意一个字符 例:grep ‘.’my.txt 显示除空行外的内容\ 转义字符 例:grep ‘\.$’my.txt 匹配以.结尾的的行

转义字符序列:\n 回车换行;\t tab键

* 前一个字符连续出现0次或0次以上 例:grep ‘0*’my.txt,包括为空的内容.* 所有内容 ;正则表达式的贪婪性:.*表示所有或*连续出现的时候,会尽可能贪婪的匹配更多,[] [asd] 一次匹配任意一个字符(a或s或d) 例:grep ‘[asd]’my.txt

[a-z] [A-Z] [0-9] [a-zA-z]==[a-Z]== -i [a-z]

[^abc] 匹配除abc以外的内容

扩展正则:

+ 前一个字符连续出现1次或1次以上,例:egrep -o ‘[0-9]+’my.txt,匹配数字| 或者;例:egrep ‘[my|you]+’my.txt,匹配my或you的数字() 被括起来的内容,表示一个整体(字符);反向引用sed

例:egrep ‘wom(a|e)n’my.txt ==egrep ‘woman|women’my.txt

{} 连续出现 o{n,m} 前一个字母o至少连续了n次,至多连续出现了m次

o{n} 前一个字母o连续了n次

o{n,} 前一个字母o至少连续出现了n次,>=n

o{,n} 前一个字母o至多连续出现了n次,<=n

? 连续出现,前一个字符出现0次或1次

例:egrep ‘go?d’my.txt == egrep ‘god|gd’my.txt

三剑客特点和应用场景三剑客grep

-i 忽略大小写

-E 启用POSIX扩展正则表达式

-P 启用perl正则

-o 只输出正则表达式匹配的内容

-w 整字匹配

-v 不匹配的

-n 输出行号

-A after,显示匹配内容的下5行

-B before,显示匹配内容的前5行

-C contxt,显示匹配内容的前后5行

-c 统计出现了多少行,类似于wc -l

三剑客sed功能Sed核心应用

sed -n ‘4,$p’my.txt 找第4行到最后一行

sed -nr ‘/^$|*/!p’my.txt 遇到空行和*不显示

echo 123456 |sed -r ‘s#(.*)#<\1>#g’输出<123456>

先保护再使用(.*)表示所有,<\1>表示在第一个括号内容上加<>

三剑客awk

1、

取行取列

-F 指定分隔符,指定每一列结束标记(默认为空格、连续空格、tab键)

$ 取出某一列, 如:awk ‘{print $5,$9}’| column -t 打印第5、9列对齐显示

$0 整行的内容

$NF 最后一列

awk内置变量awk模式awk正则特殊模式BEGIN{}和END{}统计方法

awk ‘/^$/{i++}END{print i}’/etc/log 统计空行

seq 100 |awq ‘{sum=sum+$1}END{print sum}’求1加到100的和

awk数组

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。