1.基础正则表达式

1.1正则表达式与通配符

image.png

1.2基础正则表达式

image.png

grep “^$” 文件名:匹配空白行

2.字符截取命令

2.1字符截取命令

2.1.1cut字段提取命令

  1. #cut [选项] 文件名

选项:
-f 列号:提起第几列(分隔符是TAB键空格)
-d 分隔符:按照指定分隔符分割列
image.png

image.png

2.1.2printf命令

  1. printf '输出类型输出格式' 输出内容

输出类型:
%ns 输出字符串。n是数字指代输出几个字符
%ni 输出整数。n是数字代表输出几个数字
%m.nf 输出浮点数。m和n是数字,指代输出的整数位数和小数位数。
image.png
image.png

image.png
先查询在使用管道符 就是错误的

2.1.3 awk命令

  1. awk '条件1{动作1} 条件2{动作2}...' 文件名

条件:
一般使用关系表达式作为条件
x>10 判断变量x是否大于十
x>=10 大于等于
x<=10 小于等于

动作:
格式化输出
流程控制语句

Shell编程 - 图8
在awk命令中print和printf 可以区别空格为分隔符
image.png

BEGIN:条件 在命令执行之前执行他的动作
FS内置变量:动作 指定分隔符 如果手工定义分隔符就需要在前加入BEGIN条件(awk会先看第一行在执行下面的行)
image.png

2.1.4 sed命令

image.png
**

  1. #sed [选项] '[动作]' 文件名

选项:
-n 一般sed命令会吧所有数据都输出到屏幕,如果加入此选择,则只会把sed命令处理的行输出到屏幕
-e 允许对输入的数据应用多条sed命令编辑 后面的命令需要用单引号括起来 用回车或分号分隔
-i 用sed的修改结果直接修改读取数据的文件,而不是由屏幕输出
Shell编程 - 图12
image.png

3.字符处理命令

3.1排序命令sort

  1. rote [选项] 文件名

选项:
-f 忽略大小写
-n 以数值型进行排序,默认使用字符串排序
-r 反向排序
-t 指定分隔符,默认是分隔符是制表符(TAB)
-k n[,m] 按照指定的字段范围排序。从第n字段开始,m字段结束(默认到行尾)

3.2 统计命令wc

wc [选项] 文件名

选项:
-l 只统计行数
-w 只统计单词数
-m 只统计统计字符数

4.条件判断

4.1按照文件类型进行判断

image.png

4.1.1两种判断格式

test [选项] 文件名
或
[ -e 文件名 ] ([]前后都需要有空格)

echo $?   (返回值)
#0代表存在 非0代表不存在

[] &&echo "yes" || echo "no"

image.png

4.2 按照文件权限进行判断

image.png

4.3 两个文件之间进行比较

image.png

4.4 两个整数之间的比较

image.png

4.5 字符串的判断

image.png

4.6多重条件判断

image.png

5.流程控制

5.1 if判断语句

if [判断语句]
    then  
elif [判断语句]  
  else 
fi

5.2 case 判断语句

image.png

5.3 for判断语句

语法一
image.png

语法二
image.png

5.4 while循环语句

image.png

5.5 until循环语句

image.png