与正则表达式相关的处理命令
grep (Global regular expression print) 行筛选
1.语法:grep 模式 文件名列表 [egrep、fgrep]
2.grep选项:
- -F --fixed-strings 固定字符串搜索(fgrep)
- -G --basic-regexp 基本正则表达式语法(BRE)
- -E --extended-regexp 扩展正则表达式语法(ERE)
- -P --perl-regexp 兼容Perl语法的正则表达式 (PCRE) [查PCRE语法:man pcresyntax]
- -n 显示时每行前面显示行号
- -v 显示不包含模式的行
- -i 字母比较式忽略字母的大小写
sed 流编辑
1.语法:
- sed '命令' 文件名列表
- sed -e '命令1' -e '命令2' -e '命令3' 文件名列表
- sed -f 命令文件 文件名列表
- 在模式描述中增加 \( 和 \) 仍然代表它自身
- 替换字符串中的\0 \1 \2 代表与模式匹配的第1个,第2个……字符串
awk 行列筛选及文本加工
1.语法
- awk '程序' 文件名列表
- awk -f 程序文件名 文件名列表
- 程序 = 条件 {动作} awk对每行文本执行条件判断,满足条件执行动作(内置循环)
允许多段程序:多段程序之间使用空格或者分号分割开来
2.处理方式
- 输入文件的每一行作为一个 "记录",变量NR就是行号
- 每行用空格分割开来的内容,叫做记录的 "域" 内置变量$1就是第1域的内容,特别的$0就是整个这一行的内容
- awk的处理为:符合条件的行就执行动作
3.awk描述条件的方法
- 使用c语言类似的关系运算符 < <= == != > >=
- 使用c语言类似的逻辑运算符 || && !
- 正则表达式的模式匹配
- 特殊条件:
--不指定任何条件,对所有的文本行执行动作
--BEGIN 开始处理所有文本之前执行的动作
4.awk描述动作的方法
- 自定义变量
- 加减乘除等算术逻辑运算
- 正则表达式匹配运算符(用作条件判断) ~ !~
- 流程控制(与C语言类似)
- print var1,var2
- printf (格式字符串,var……)