正则表达式就是把人类想要查询的东西,用计算机能识别的语言表达出来的一种规则。
正则表达式仅受三剑客( grep , sed , awk )命令支持,其他 命无法使用
^ //以什么开头;"^hzz" 表示以hzz单词开头的行、
$ //以什么结尾;"hzz$" 表示以hzz单词结尾的行
^$ //组合符号,表示空行,^$之间为空表示空行
. //匹配任意的单个字符,匹配空格,不匹配空行
\ //转义字符,让后面的一个特殊字符失效
* //匹配前一个字符(连续出现)0次或1次以上
.* //组合符号,匹配所有字符
[abc] //匹配[]内包含的任意一个字符a或b或c
[a-z] //配置[]内包含的a-z的任意一个字符
[0-9] //匹配[]内包含的0-9的任意一个数字
[^abc] //取反,表示匹配除了a b c这三个字符以外的其他字符
cut命令
cut命令是一个Linux/Unix命令,用于从文件或标准输入中提取字段并输出到标准输出。
cut 经常用来显示文件的内容,显示行中的指定部分,删除文件中指定字段。
语法:cut [选项] 文件名
-b:仅显示行中指定直接范围的内容;
-c:仅显示行中指定范围的字符;
-d:指定字段的分隔符,默认的字段分隔符为“TAB”;
-f:显示指定字段的内容;
-n:与“-b”选项连用,不分割多字节字符;
--complement:补足被选择的字节、字符或字段;
--out-delimiter= 字段分隔符:指定输出内容是的字段分割符;
--help:显示指令的帮助信息;
--version:显示指令的版本信息
示例L(显示2,4列两列的内容)
printf命令语法:printf '输出类型输出格式' 输出内容
转义字符 解释
语法:awk ‘条件1{动作1}条件2{动作2}...’ 文件名
grep 过滤文本
sed : 修改文本
awk : 处理文本
关系表达式
> : 小于
< : 大于
>= : 小于等于
<= : 大于等于
== : 等于
!= : 不等于
一般使用关系表达式作为
条件
x>6:判断x是否大于6
x>=6:是否大于等于6
动作
格式化输出
流程控制语句(for循环、if语句)
语法:awk '条件1{动作1}条件2{动作2}...' 文件名
示例查看student下第二列,没有条件,只要有数据全部都输出,printf 输出 $n代表输出第n 列,$0输出整行
-f 忽略大小写
-n 以数值型进行排序,默认使用字符串型排序
-r 反向排序
-t 指定分隔符,默认是分隔符是制表符
-k n,m 按照指定的字段范围排序。从第n字段开始,m字段结束(默认到行尾)
以student.txt 分数(Mark)为例
降序
指定分隔符就是“:”,用第三字段开头,第三字段结尾排序,就是只 用第三字段排序统计命令wc
语法: wc [选项] 文件名
选项 解释
-l: 只统计行数
-w: 只统计单词数
-m: 只统计字符数