12章 正规表示法与文件格式化处理
2017-08-21 09:22
169 查看
1、什么是正规表达式:
处理字符串的一种通用规则方法,以行为单位进行字符串处理。只要工具支持特殊表示法,就可以作为正规表述式字符串处理使用,如vi、grep、awk、sed。总结来说就是用一些特殊的字符来表示所需要处理的字符串,起到方便、快捷、高效的作用。2、基本正规表达式语法
字符串的正规表示法:对于正规表达 . * $ {} \ 特殊符号用法汇总:
对于扩展正规表达:+ ? | () ()+用法汇总
一些简单示例:
‘t[ae]st’:搜寻含有tast或者test的行。
‘[[^g]oo]’:搜寻oo且前面不含g的行。
‘[[:digit:]gg]’:搜寻gg前面有数字的行。
‘[[:digit:]]’:只含有数字的行。
‘^the’:列出行首是the的行。注意^在[]内是反选,外是行首的意思。
‘^$’:找出空白行。
.代表一定有一个任意字符,*代表重复前一个字符0或者无穷次
.* 就代表有0个或多个任意字符。
{}字符限定范围 ;’o{2}’连续找两个o;\跳出{在shell中的特殊作用 ;’go{2,5}g’ 找出g g之间2到5个o的字符。
3、grep
grep [-acinv] [-AB] [–color=auto] ‘char’ filename以行为单位处理字符串,字符串进行对比,取出含有符合要求字符串所在的行。
-a: 将二进制文档以text档案方式去搜寻
-c:计算找到匹配字符串的次数
-i: 忽略大小写搜寻
-n:输出行号
-v:输出没有匹配字符串的行
-A:输出匹配字符串后多少行 -A3后三行
-B:输出匹配字符串前多少行 -B2前两行
–color=auto:关键字加颜色,默认,因为alias。
egrep -v ‘^$|^#’ t.txt找出不含有空白和首行是#的行。
4、sed
sed [-nefri] 动作管线命令可以对standard input数据进行取代,删除,新增和截取特定行等功能。
选项和参数:
-n: silent模式,-n使得sed仅仅显示经过特殊处理的行。
-e: 直接在指令列模式进行sed动作编辑
-f: 将sed动作处理完后写入档案内,-f filename
-r: 使sed支持延伸语法
-i: 直接修改档案里面内容,不经过屏幕输出
-p: 打印处n1和n2指定的行,结合-n一起使用
动作说明:
通过 ’ [n1,[n2]]function ’ 代表执行动作,function是下面字符:
a: 指定行的下面增加a后面的字符
c: 用c后面的字符串取代n1和n2指定行
d: 删除n1和n2所指定的行
i: 指定行的上面增加i后面的字符
s: 取代工作 ‘1,20s/old/new/g’把1到20行的old取代为new
sed具体例子
cat /etc/passwd | sed ‘2,5d’ 删除passwd2到5行
cat /etc/passwd | sed ‘2,$d’ 删除passwd2到最后行
cat /etc/passwd | sed ‘2a #This is a test’ 在passwd第2行后一行添加#This is a test
cat /etc/passwd | sed ‘2a #This is a test’ 在passwd第2行前一行添加#This is a test
cat /etc/passwd | sed ‘2a #This is a test \ this ’ 在passwd第2行后一行添加两行,分别是#This is a test和this。增加行和行直接通过\连接。
cat /etc/passwd | sed ‘2,5c No 2-5’ 将passwd第2行到5行取代为No 2-5。
cat /etc/passwd | sed -n ‘2,5p’直接显示第2到5行
ifconfig ens33|grep ‘inet addr’ |sed ‘s/^.*addr://g’|sed ‘s/B.$’gerp出含有相应字符串的行,然后将行头到addr之间替换为空,和行内B到结尾之间替换为空;注意正规表示法。
cat /etc/man.config|grep ‘MAN’|sed ‘s/#.*¥//g’|sed ‘/^$/d’
¥=$
sed -i ‘$a this is’ text.txt在text行尾加上this is。这个属于直接修改文件里面内容。
相关文章推荐
- 12 正规表示法与文件格式化处理
- Note For Linux By Jes(6)-正规表示法与文件格式化处理
- linux笔记八(正规表示法与文件格式化处理)
- 鸟哥的Linux私房菜学习笔记(三)学习 Shell 与 Shell scripts——正规表示法与文件格式化处理
- Linux鸟哥私房菜学习笔记_第十二章 正规表示法与文件格式化处理
- 第33周-鸟哥的Linux私房菜基础篇第三版- 第十二章、正规表示法与文件格式化处理
- 第十二章、正规表示法与文件格式化处理
- 第十二章、正规表示法与文件格式化处理
- 第12章 正规表示法与文件格式化处理
- 鸟哥的 Linux 私房菜第12章-正规表示法与文件格式化处理 学习笔记
- 第12章、 正规表示法与文件格式化处理
- 鸟哥的Linux私房菜(基础篇)- 第十二章、正规表示法与文件格式化处理
- 鸟哥的Linux私房菜10.18 正规表示法与文件格式化处理
- 【鸟哥 linux 基础篇】 第12章 正规表示法与 文件格式化处理
- 正规表示法与文件格式化处理
- 鸟哥的Linux私房菜基础学习篇(第三版)之第十二章:正则表示法与文件格式化处理
- 第十二章 正规表达式与文件格式化处理
- 拜师鸟哥之linux学习体会(11)——正规表达法与文件格式化处理
- Linux:文件格式化与相关处理及sed工具
- 鸟哥的Linux私房菜 基础学习篇 第三版 第十二章 正则表达式与文件格式化处理 12.4.2 awk 好用的数据处理工具