• shell脚本三——正则表达式


    1. shell函数:shell中允许将一组命令集合或语句形成一段可用代码,这些代码块称为shell函数。给这段代码起个名字称为函数名,后续可以直接调用该段代码。
    2. 格式:fun() { 命令 }
    3. Shell正则表达式

    定义:匹配字符串,为了处理大量得文本和字符串指定的一套规则和方法。

    分类:基础正则和扩展正则(+ ? | () )

    正则与通配的区别:

    1) 三剑客awk sed egrep都是正则

    2) 文件目录名——通配符 ; 文件内容(字符串,文本内容)——正则表达式

    . 匹配任意单个字符

    ^ 匹配前面字符串开头

    $ 匹配前面字符串结尾

    *匹配前一个字符的零个或多个

    .*表示任意长度的任意字符

    +表示前面的字符初选最少一次的情况

    ?表示前面字符出现最多一次

    [ ]表示范围内的一个字符

    [.-.]匹配括号里的任意一个字符

    ^[^] 匹配[^]字符之外的任意一个字符

    {n,m}表示最少n次 最多m次

    >锚定单词尾部

    <锁定单词首部

    ( )调用前面第一个分组

    |

    例:打印出包含某个关键词的文件(关键词执行脚本时接收)

    #!/bin/bash

    key=$1

    for file in `find / -type f`

    do

            grep "$key" $file &>/dev/null

            if [ $? -eq 0 ];then

                    echo $file

                    sleep 1

            fi

    done

    1. 统计系统中以.sh结尾的文件总大小,输出结果以kb为单位

    #!/bin/bash

    sum=0

    for size in `find /root -name "*.sh" -exec ls -l {} ; | cut -d " " -f 5`

    do

            let sum+=$size

    done

    echo "$((sum/1024))kb"

  • 相关阅读:
    TO DO
    Ethernet、IP、TCP、UDP、ARP数据格式与封装解封
    Django documentation重点段落
    Docker、Docker Compose内容汇总
    systrace
    超级无敌傻瓜教程系列之 GraphQL教程
    Java常用lambda表达式
    MySQL索引与数据页的关系
    wireshark抓包127.0.0.1/本地
    OpenAL采集手动修改默认设备问题
  • 原文地址:https://www.cnblogs.com/zzzynx/p/10701208.html
Copyright © 2020-2023  润新知