shell脚本:awk和sed

awk 和sed
    cut [选项] 文件名   默认分隔符是制表符
    选项:
        -f 列号:    提取第几列
        -d 分隔符:    按照指定分隔符分割
    cut的局限性  不能分割空格
    
    awk
        一个强大的文本分析工具
        把文件逐行的读入,以空格为默认分隔符将每行切片,切开的部分在进行各种处理
        语法:awk '条件1{动作1}.....' 文件名
        eg:
            df -h | awk '{print $1 $2}'
            cat /etc/passwd | awk 'BEGIN{FS=":"}{print $1"\t"$2"\t"$3}'  --> BEGIN命令,一开始就执行
            ifconfig eth1 | grep "inet addr:" 获取文件中 含有inet addr:这一行
            ifconfig eth1 | grep "inet addr:" | awk -F: '{print $2}' |awk '{print $1}' 获取ip地址
    
    sed
        是一个非交互性文件流编辑器,它编辑文件或标准输入导出的文件拷贝
        注:并不与初始文件打交道,它操作的只是一个拷贝,然后所有的改动如果没有重定向到一个文件,将输出到屏幕
        语法:sed [选项] '[动作]' 文件名
        选项:
            -n 使用安静(slient)模式,显示经过sed特殊处理的数据
            -e 允许多点编辑
            -i 直接修改读取的档案内容,而不是由屏幕输出 --> 改源文件
        命令:
            a\    新增,a的后面可以接字串,在下一行出现
                sed ’2a hive' cut.log
            c\    替换
            d    删除
            i\    插入
            p    打印
            s    查找并替换 eg:2s/old/new /g
            
定时器
    crontab命令允许用户提交、编辑、或删除相应的作业。每一个用户都可以有一个crontab文件来保存调度信息。可以使用它运行任意一个shell脚本或某个命令
    crontab的命令格式
        crontab -e 
            使用编辑器编辑当前的crontab文件
        crontab文件格式
            minute     hour     day-of-month     month-of-year     day-of-week     commands
            [0-59]     [0-23]    [1-31]            [1-12]            [0-6] 0表示周天    执行的命令    
            
        书写注意事项
        全部不能为空,必须填入,不知道的用通配符*表示任何时间
        每个时间段可以指定多个值,不连续得值用(,)间隔,连续的用(-)间隔
        命令应该给出绝对路径
        用户必须具有运行所对应的命令或程序的权限
        */2 每隔两分钟(..)执行
        
history命令
    功能:帮助用户回忆执行过的命令
        -c 清楚所有的历史命令
        -w 把缓存中的历史命令写入历史命令保存文件~/.bash_history
        !命令号  执行这条命令的历史命令
        !字符串 执行以该字符串开头的最近的一条历史命令
ctrl+R
    对历史命令的搜索
    
输入重定向
    < 
输出重定向
    > >> 
    
    bash t2.sh > a.log 2> b.log   正确的日志输入到a,错误的输入到b
    bash t2.sh > /dev/null 2> b.log   正确的日志不输入
    

猜你喜欢

转载自blog.csdn.net/ademing/article/details/83046024