Linux学习笔记(五):文本处理及shell编程

欢迎关注公众号,一起从天坑专业转行大数据开发。

 

文本处理三剑客:awk,grep,sed

awk:

AWK 是一种处理文本文件的语言,是一个强大的文本分析工具。

参数:

       

grep:

Linux grep 命令用于查找文件里符合条件的字符串。

grep 指令用于查找内容包含指定的范本样式的文件,如果发现某文件的内容符合所指定的范本样式,预设 grep 指令会把含有范本样式的那一列显示出来。若不指定任何文件名称,或是所给予的文件名为 -,则 grep 指令会从标准输入设备读取数据。

grep参数:

       

sed:

Linux sed 命令是利用脚本来处理文本文件。

sed 可依照脚本的指令来处理、编辑文本文件。

Sed 主要用来自动编辑一个或多个文件、简化对文件的反复操作、编写转换程序等。

       

按照文件权限进行判断

       

  1. 两个文件之间进行比较

  1. 两个整数之间比较

       

         

[ 23 -ge 22 ] && echo "yes" || echo "no" yes

#判断23是否大于等于22,当然是了  

[ 23 -le 22 ] && echo "yes" || echo "no"  no

#判断23是否小于等于22,当然不是了

5、字符串的判断

       

         

name=sc

#给name变量赋值

[ -z "$name" ] && echo "yes" || echo "no"  

no

#判断name变量是否为空,因为不为空,所以返回no  

aa=11

bb=22

#给变量aa和变量bb赋值

[ "$aa" == "bb" ] && echo "yes" || echo "no"            

no

#判断两个变量的值是否相等,明显不相等,所以返回no

6、多重条件判断

       

         

aa=11

[ -n "$aa"  -a "$aa" -gt 23 ] && echo "yes" || echo "no"

no

#判断变量aa是否有值,同时判断变量aa的是否大于23

#因为变量aa的值不大于23,所以虽然第一个判断值为真,返回的结果也是假  

aa=24

[ -n "$aa"  -a "$aa" -gt 23 ] && echo "yes" || echo "no" yes

单分支条件语句需要注意几个点

  • if语句使用fi结尾,和一般语言使用大括号结尾不同

  • [ 条件判断式 ]就是使用test命令判断,所以中括号和条件判断式之间必须有空格

  • then后面跟符合条件之后执行的程序,可以放在[]之后,用“;”分割。也可以换行写入,就不需要“;”了

例子:判断分区使用率 

#!/bin/bash#备份mysql数据库。# Author:shenchao(E-mail:shenchao@lampbrother.net)ntpdateasia.pool.ntp.org&>/dev/null#同步系统时间date=$(date+%y%m%d)#把当前系统时间按照“年月日”格式赋予变量datesize=$(du-sh/var/lib/mysql)#统计mysql数据库的大小,并把大小赋予size变量if [ -d/tmp/dbbak ]    then        echo"Date:$date!" > /tmp/dbbak/dbinfo.txt        echo"Datasize$size">>/tmp/dbbak/dbinfo.txt        cd/tmp/dbbak        tar -zcf mysql-lib-$date.tar.gz /var/lib/mysql dbinfo.txt &>/dev/null        rm -rf /tmp/dbbak/dbinfo.txt    else        mkdir /tmp/dbbak        echo"Date:date!">/tmp/dbbak/dbinfo.txt        echo"Datasize:size">>/tmp/dbbak/dbinfo.txt        cd/tmp/dbbak        tar -zcf mysql-lib-$date.tar.gz /var/lib/mysql           dbinfo.txt &> /dev/null         rm -rf /tmp/dbbak/dbinfo.txt fi

#!/bin/bash#从1加到100#Author:shenchao(E-mail:shenchao@lampbrother.net)i=1s=0while [ $i -le 100 ] #如果变量i的值小于等于100,则执行循环    do        s=$(($s+$i))        i=$(($i+1))    doneecho"Thesumis:$s"

#!/bin/bash#从1加到100#Author:shenchao(E-mail:shenchao@lampbrother.net)i=1s=0until [ $i -gt 100 ]#循环直到变量i的值大于100,就停止循环    do        s=$(($s+$i))i=$(($i+1))    doneecho"Thesumis:$s"

#!/bin/bashfunWithReturn(){    echo "这个函数会对输入的两个数字进行相加运算..."    echo "输入第一个数字: "    read aNum    echo "输入第二个数字: "    read anotherNum    echo "两个数字分别为 $aNum 和 $anotherNum !"return $(($aNum+$anotherNum))}funWithReturnecho "输入的两个数字之和为 $? !"

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值