shell三剑客 grep/sed/awk和脚本编写 持续更新

参考书籍《Linux系统命令及shell脚本实践》

前提准备

百度或者谷歌搜索关键词“命令行工具”,下载安装。
Windows系统有很多命令行工具cygwin,git bash,我用的是Cmder
Mac命令行工具有自带的terminal等。

5.2 使用grep搜索文本

基于行的文本搜索工具,使用该工具时,如果匹配到相关信息就会打印出符合条件的所有行。

  1. 新建文件
    新建文件
    编辑文件内容
    在这里插入图片描述
    在这里插入图片描述

  2. 查找含有name的行:
    在这里插入图片描述

  3. 打印出含有name行的行号,使用参数-n
    在这里插入图片描述

  4. 忽略大小写,使用参数-i
    在这里插入图片描述

  5. 统计输出的行数,使用参数-c
    在这里插入图片描述

  6. 忽略大小写,统计输出的行数
    在这里插入图片描述

  7. 打印不包含name的行,使用反选参数-v
    在这里插入图片描述

  8. 使用cat+管道改写第7条
    在这里插入图片描述

  9. 查看grep的所有命令参数,使用参数–help
    在这里插入图片描述

10.3 文本处理工具sed

sed(stream editor)是一种非交互式的流编辑器,通过多种转换修改流经它的文本。默认情况下,sed并不会改变文件本身,只是将修改后的文本打印到标准输出(也就是屏幕中)。处理以行为单位,每处理完一行就立即打印出来,然后在处理下一行,直至结束。包括删除、查找、替换、添加、插入、从其他文件中读入数据等。

常用场景:

  • 常规编辑器编辑困难的文本
  • 过于庞大的文本,比如vi一个几百兆的文件
  • 有规律的文本修改,加快文本处理速度(比如全文替换)
  1. 准备文件,参考grep的1~2

shell脚本编写

变量
# 定义变量
a=1
b=hello
c="hello"
d='hello  "tom"'
e=`ls`

-左右不要带空格,如果内容有空格,用双引号或单引号括住
-双引号支持转义,$开头的变量会被替换掉

# 变量使用格式,三选一
echo $a
echo ${b}
echo "$a"

在这里插入图片描述

算数判断和字符串比较
  • [ 2 -eq 2 ] 相等
  • [ 2 -ne 2 ] 不等
  • [ 3 -gt 1 ] 大于
  • [ 3 -ge 1 ] 大于等于
  • [ 3 -lt 2 ] 小于
  • [ 3 -le 3 ] 小于等于
  • [ $a -gt $b ] 变量a是否大于变量b
  • [ string1 = string2 ] 字符串是否相等
  • [ -n “$var” ] 如果字符串不空,则结果为真(引用变量要加双引号,否则a未定义时,语法会报错)
  • [ -z “$var” ] 如果字符串不空,则结果为真

用$?表示上一个表达式的结果,0表示true,1表示false。
在这里插入图片描述

内置判断
  • [ -e file ] 如果是文件,返回真
  • [ -d file ] 如果是子目录,返回真
  • [ -f file ] 如果是普通文件,返回真
  • [ -r file ] 如果文件可读,返回真
  • [ -s file ] 如果文件长度不为0,返回真
  • [ -w file ] 如果文件可写,返回真
  • [ -x file ] 如果文件可执行,返回真
    在这里插入图片描述
逻辑控制

if else
for循环
while循环

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值