IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 系统运维 -> Linux学习笔记(五):文本处理及shell编程 -> 正文阅读

[系统运维]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 "输入的两个数字之和为 $? !"?

  系统运维 最新文章
配置小型公司网络WLAN基本业务(AC通过三层
如何在交付运维过程中建立风险底线意识,提
快速传输大文件,怎么通过网络传大文件给对
从游戏服务端角度分析移动同步(状态同步)
MySQL使用MyCat实现分库分表
如何用DWDM射频光纤技术实现200公里外的站点
国内顺畅下载k8s.gcr.io的镜像
自动化测试appium
ctfshow ssrf
Linux操作系统学习之实用指令(Centos7/8均
上一篇文章      下一篇文章      查看所有文章
加:2022-01-16 13:31:42  更:2022-01-16 13:32:09 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/16 6:31:20-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码