Bootstrap

笔记--(Shell脚本01)、正则表达式与文本处理器

bash

bash是一个命令处理器,运行在文本窗口中,并能执行用户直接输入的命令。
bash还能从文件中读取Linux命令,这种文件就称之为脚本。
bash支持通配符、管道符、命令替换、条件判断等逻辑控制语句。

bash特性

命令行展开
[root@localhost ~] echo {0..10}
0 1 2 3 4 5 6 7 8 9 10
#二的倍数
[root@localhost ~] echo {0..10..2}
0 2 4 6 8 10

命令别名
#给systemctl设置别名为abc 并关闭防火墙
alias 
[root@localhost ~] alias abc=systemctl
[root@localhost ~] abc stop firewalld
#取消别名
unalias
[root@localhost ~] unalias abc
[root@localhost ~] abc stop firewalld
-bash: abc: 未找到命令

正则表达式概述

正则表达式定义又称为正规表达式,常规表达式
使用字符串来描述、匹配一系列符合某个规则的字符串
正则表达式组成:
普通字符:大小写字母、数字、标点符号及一些其他符号
元字符:在正规表示中具有特殊意义的专用字符

表达式层次
基本正则表达式

在这里插入图片描述

扩展正则表达式

在这里插入图片描述

grep命令格式

参数选项解释说明
-v排除匹配结果
-n显示匹配行与行号
-i不区分大小写
-c只统计匹配的行数
-E使用egrep命令
–color=auto为grep过滤结果添加颜色
-w只匹配过滤的单词
-o只输出匹配内容

sed命令格式

#语法
sed [选项] [sed内置命令字符] [输入文件]
sed选项
参数选项解释
-n取消默认sed的输出,常与sed内置命令p一起使用
-i直接将修改结果写入文件,不用-i sed修改的是内存数据
-e多次编辑,不需要管道符号了
-r支持正则扩展
sed常用的内置命令
sed的内置命令字符解释
aappend,对文本追加,在指定行后面添加一行/多行文本
dDelete,删除匹配行
iinsert,表示插入文本,在指定行前添加一行/多行文本
pPrint,打印匹配行内容,通常p与-n一起使用
s/正则/替换内容/g匹配正则内容,然后替换内容
sed匹配范围
范围解释
空地址全文处理
单地址指定文件某一行
/pattern/被模式匹配到的每一行
范围区间10,20十到二十行,10,+5第10行向下5行,/pattern1/,/pattern2/
步长12,表示1、3、5、7、9行,22两个步长,表示2、4、6、8、10、偶数行

在这里插入图片描述

awk命令

功能强大的编辑工具
有强大的文本格式化的能力
无交互的情况下实现复杂的文本操作
awk更是一门编程语言,支持条件判断、数组、循环等功能

awk语法
awk [可选参数] [模式] {动作} 文件/数据
awk内置变量

FS:指定每行文本的字段分隔符,缺省为空格或制表位

NF:当前处理的行的字段个数$NF:表示最后一列 $(NF-1):表示倒数第二列

NR:当前处理的行的行号

$0:当前处理的行的整行内容

$n:当前处理行的第n个字段(第n列)

在这里插入图片描述

;