Shell编程

一. 基础正则表达式

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

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值