Linux三剑客
Linux三剑客之grep
linux三剑客之一,文本过滤器(根据文本内容过滤文件)。
语法格式:
grep [参数] [匹配规则] [操作对象]
参数:
-n : 过滤文本时,将过滤出来的内容在文件内的行号显示出来
-A : 匹配成功之后,将匹配行的后n行显示出来
-B : 匹配成功之后,将匹配行的前n行显示出来
-C : 匹配成功之后,将匹配行的前后各n行显示出来
-c : 只显示匹配成功的行数
-o : 只显示匹配成功的内容
-v : 反向过滤
-q : 静默输出
-i : 忽略大小写
-l : 匹配成功之后,将文本的名称打印出来
-R|-r : 递归匹配
-E : 使用拓展正则 等价于 egrep
知识储备:
$? : 上一行命令执行的结果,0代表执行成功,其他数字代表执行失败。

Linux之正则
1、正则表达式的分类(可配合grep使用)
1、普通正则表达式
2、拓展正则表达式
2、普通正则表达式
^ : 以某字符开头
$ : 以某字符结尾
. : 匹配除换行符之外的任意单个字符
* :匹配前导字符的任意个数
[] :某组字符串的任意一个字符
[^] : 取反
[a-z] : 匹配小写字母
[A-Z] : 匹配大写字母
[a-zA-Z] : 匹配字母
[0-9] : 匹配数字
\ : 取消转义
() : 分组
\n : 代表第n个分组
3、拓展正则
{} :匹配的次数
{n} : 匹配n次
{n,} :至少匹配n次
{n,m} :匹配 n 到 m 次
{,m} :最多匹配m次
+ :匹配至少有一个前导字符
? : 匹配一个或零个前导字符
| :或

Linux三剑客之sed
sed(流式编辑器) :主要用于修改文件
sed格式: sed [参数] '处理规则,指令' [操作对象] 参数: -e: 允许多项编辑 -n: 取消默认输出 -i: 就地编辑文本 -r: 支持扩展正则表达式使用(正则表达式必须放在//中使用) -f: 指定定位规则 指令: p: 打印 d: 删除 g: 全局 a: 在当前行后加一行或多行内容 c: 用新文本替换当前行内容 i: 在当前行插入文本 r: 从文件以外读取相关的内容,写入相关行之后 w: 匹配到的行写入一个新的文件之中 y: 将字符转换成另一个新的字符 (一个一个的转换) s: 用一个字符整体替换成另外一个字符 (整体转换) (如需全体转换需配合g使用,在此处加i的话可忽略大小写)
& :代表前面匹配到的内容
"1~2" : 偶数 "1~3" : 基数 "1~4" : 4的倍数 sed+正则表达式(定位): 1.数字 固定定位 sed -n ‘2p’ 路径 范围定位 sed -n '1,3p'路径 2.正则 必须放在//之间 正则匹配是非贪婪性的匹配 (贪婪性是匹配到后,不停的继续匹配,直至文件所有的内容加载完毕) (非贪婪性匹配,一旦匹配到了就停止匹配) 3.数字加正则 4 .\c与c分隔符 \c与c只是一个代表,其中c可以换成任意一个字符
Linux三剑客之首 awk
主要用于处理文本
语法:
awk [参数] [处理规则] [操作对象]
参数:
-F :指定文本分隔符 (默认为空格)
awk的生命周期:
(grep、sed、awk都是读一行处理一行,直到完成)
1.接收输入
2.读取输入数据到文本进行分解
3.使用规则处理文本
4.输入一行,赋值给$0,直至处理完成
5.把处理完之后的所有数据交给END{ }再次处理
awk中的定义变量:
$0 : 代表当前行
$n : 代表第n行
NF : 记录当前行的字数
NR : 用来记录行号
FS : 指定文本内容分隔符 (默认空格)
OFS : 指定打印分隔符
awk中的函数:
print :打印
printf :格式化打印
%s :字符串
%d :数字
- :左对齐
+ :右对齐
awk中的定位:
1.正则表达式
/ /
awk -F: '/^xxx/' /etc/passwd
2.比较表达式
> ,< ,>= ,<=
~ 正则匹配
!~ 正则匹配(取反)
3.逻辑表达式
&& : 逻辑与
|| :逻辑或
! :逻辑非
4.算术表达式
+ ,- ,* ,/ ,%
5.条件表达式
== ,> ,< ,>= ,<=
6.范围表达式
awk -F: '/头/,/尾/{print $0}' 路径
流程控制:
只存在循环之中
if:
单分支:if (){}
双分支:if(){}else{}
多分支:if(){}else if(){}else{}
for:
for(i="初始值";条件判断;游标){}
while:
while(条件判断){}

文本处理命令
1.sort 命令
用于将文件内容排序
参数:
-n # 依照数值的大小排序
-r # 以相反的顺序来排序
-k # 以某列进行排序
-t # 指定分割符,默认是以空格为分隔符
2.uniq 命令
用于检查文本文件中重复出现的行
参数:
-c # 在每列旁边显示该行重复出现的次数
-d # 仅显示重复出现的行列
-u # 仅显示出一次的行列
3.cut 命令
用于显示行中指定的部分
参数:
-d # 指定字段的分隔符
-f # 显示指定字段的内容
4.tr 命令
替换或删除命令
参数:
-d # 删除字符
5.wc 命令
统计数字
参数:
-c # 统计文件的Bytes数
-l # 统计文件的行数
-w # 统计文件中单词的个数,默认以空白字符做为分隔符
(注:在Linux系统中,一段连续的数字或字母组合为一个词。)



浙公网安备 33010602011771号