鸟哥的Linux私房菜(四)正则与ShellScript

正则表达式与字符串匹配

语系

常见的正则表达式可以分为基本正则表达式和扩展正则表达式
1、基本的正则表达式(Basic Regular Expression 又叫Basic RegEx 简称BREs)
2、扩展的正则表达式(Extended Regular Expression 又叫Extended RegEx 简称EREs)

两者略有不同,本书中我们主要还是了解基本正则。

学习正则表达式最重要的是记忆、理解、练习。其中记忆是关键,正则表达式的规则多种多样,首先最重要的是我们把常用的规则记下来,然后反复练习,熟练并灵活的运用到实际开发过程中。

用途

正则表达式主要就是第一一个字符串的规则来匹配目标字符串,常用于Linux中文本的查找与替换,例如sed和grep命令。

使用时要注意不同语系之间字母表排列的顺序,例如在C和Zh-CN不同语系中A-Z表示不同的字符序列。

grep命令

基本用法:cat 1.txt | grep "gellp" #找到包含hello的行
-n 同时输出行号
--color=auto 关键词高亮显示
-A3 -B2 关键词所在行的前两行和后三行也显示出来
-i 忽略大小写

grep -n 'abc' 1.txt # 包含abc
grep -vn ...... 不包含abc
grep -in ...... 忽略大小写

grep送一个非常非常常用的命令,在匹配一个命令的大量输出结果时非常方便。

同样的,grep也可以使用正则的方式去匹配。

正则表达式的规则在不同的编程语言中大同小异,网上正则表很多,这里不再赘述。

sed命令

实例:sed -i 's/abc/def/g' 1.txt 把文本中指定模式的字符串替换为其他字符串

-n 安静模式
-i 直接修改原始文件

扩展正则

增加了诸如+?|()等常用正则高级规则

  • 重复1次或更多
  • 重复0次或更多
    | 或
    () 分组

Shell Script

实例:

#!/bin/bash
echo "Hello World !"

第一行指定使用哪个shell
第二行表示输出字符串

如上就是最简单的一个shell脚本,也就是一堆需要执行的命令的有机结合体

Shell echo命令

Shell 的 echo 指令与 PHP 的 echo 指令类似,都是用于字符串的输出。命令格式:

echo string

可以使用echo实现更复杂的输出格式控制。

Shell test 命令

Shell中的 test 命令用于检查某个条件是否成立,它可以进行数值、字符和文件三个方面的测试。

数值测试
参数 说明
-eq 等于则为真
-ne 不等于则为真
-gt 大于则为真
-ge 大于等于则为真
-lt 小于则为真
-le 小于等于则为真

Shell 流程控制

sh的流程控制不可为空,如果else分支没有语句执行,就不要写这个else。

if 语句语法格式:

if condition
then
    command1 
    command2
    ...
    commandN 
fi

for 循环

for循环格式为:

for var in item1 item2 ... itemN
do
    command1
    command2
    ...
    commandN
done

Shell 函数

#!/bin/bash
# author:jefer

demo(){
    echo "shell 函数!"
}
echo "-----函数开始执行-----"
demo
echo "-----函数执行完毕-----"

如上为shell中常用的语句,和我们常见的脚本语言类似,包括变量、判断、流程、循环、函数等内容。

页码:P400

#Linux#
全部评论

相关推荐

点赞 收藏 评论
分享
牛客网
牛客企业服务