一. 基础正则表达式
1.1 通配符与正则表达式的区别
正则表达式用来在文件中匹配符合条件的字符串,正则是包含匹配;grep,awk,sed等命令可以支持正则表达式;
通配符用来匹配符合条件的文件名,通配符是完全匹配;ls,find,cd 这些命令不支持正则表达式,所以只能用shell 自己的通配符来进行匹配问题。
二. 字符截取命令
#cat提取列命令
cat [选项] [文件名]
-f 提取第几列
-d 按照指定分隔符分割
#awk
awk '条件1 {动作1} 条件2 {动作2} ' 文件名
条件:
一般使用关系表达式作为条件
x>10
动作:
格式化输出
流程控制语句
#在awk中print 的$n 格式化打印第n列
#sed 是一种几乎包括在所有UNIX平台(包括Linux)的轻量级流编辑器;
#sed 主要是用来将数据进行选取。替换,删除,新增的命令
sed [选项] '[动作]' [文件名]
-n 一般sed会把所有的数据打印到屏幕上,但如果加这个选项,就会把它所筛选出的数据打印到屏幕上
-e 允许对数据采用多条sed命令编辑
-i 用sed 的修改结果直接修改读入数据的文件,而不是打印到屏幕上
三. 字符处理命令
#排序命令
sort [选项] [文件名]
-f 忽略大小写
-n 以数值进行排序,默认使用字符串型排序
-r 反向排序
-t 指定分割符,默认的分隔符是制表符
-k n[,m] 按照指定的字段范围排序
#统计
wc [选项] [文件名]
-n 只统计行数
-w 只统计单词数
-m 只统计字符数
四. 条件判断
#判断文件
-d 判断文件是否存在并且是目录
-e 判断文件是否存在
-f 判断文件是否存在并且是普通文件
#判断文件是否存在
text -e [文件名]
echo $?
#代表上一条一句是否正确执行。如果是返回0
or
[-e 文件名 ]
echo $?
五. 流程控制
5.1 if语句
#if判断语句
if [判断条件]
then
执行的程序
else
执行的程序
fi
or
if [判断条件];then
执行的程序
else
执行的程序
fi
5.2 case语句
#case语句
case $变量名 in
"值1")
执行程序
;;
"值2")
执行程序
;;
*)#代表剩下的其他情况
执行程序
;;
esac
5.3 for循环语句
#for语句
for 变量名 in 值1 ,值2,值3 ~#有几个值就执行几次,将值赋值给变量名
do
执行程序
done
#for语句
for(( i=0;i<=100;i++ ))#两个括号
do
执行语句
done
5.4 while语句
#while
while [条件判断]
do
执行程序
done
#until
until [条件判断]
do
执行程序
done