- 过程式编程:以指令为中心
- 对象式编程:以数据为中心
bash基础特性
shell 编程:过程式,解释执行
shell 脚本:#!/bin/bash shebang机制:首行指定解释器位置
shell 是弱类型编程语言:1. 把所有要存储的数据统统当作字符串;2.不支持浮点数
逻辑运算
&&:与
||:或
!:非
异或:相同为假,不同为真
短路运算:
与:第一个为0,则结果必定为0
或:第一个为1,则结果必定为1
linux 文件处理三剑客
grep:文本过滤(模式:pattern)工具
sed:stream editor 文本编辑工具
awk:linux上用的是gawk 文本报告生成器
grep
global search regular expression(RE) and print out the line
作用:文本搜索工具,根据pattern对目标文件逐行进行匹配检查,打印匹配到的行。
pattern:由正则表达式字符以及文本字符所编写的过滤条件。
正则表达式:
基本正则表达式:BRE grep
扩展正则表达式:ERE grep -E 或 egrep
grep [OPTIONS] PATTERN [FILE ...]
--color=auto: 匹配到的内容自动上色
centos7默认执行--color参数,centos6需要手动指定
-v:反向选择,显示不能被匹配到的行
-i:匹配时忽略字符大小写
-o:仅显示匹配到的字符串本身
-q:静默模式,不输出任何信息。结果可以从 $? 查看
-A n:after 及后n行
-B n:before 及前n行
-C n:context 前后各n行
基本正则表达式:
字符匹配:. [] [^] 单个字符
次数匹配:* \? \+ \{m\} \{m,n\} \{0,n\} \{m,\}
位置锚定:^ $ ^$空行
词首锚定:\< 或 \b 用于单词模式的左侧
词尾锚定:\> 或 \b 用于单词模式的右侧
匹配pattern整个单词:\<PATTERN\>
分组:
\(\)
\(xy\)* xy出现n次
反向引用:引用前面的分组括号中模式所匹配到的字符,而非pattern
\n 表示引用第几个分组的字符串
egrep 及扩展的正则表达式
egrep = grep -E
次数匹配:? + {m} {m,n} 不需要反斜杠 \
分组:() 不需要\
其他:同grep
或者:a|b
C|cat 表示:C 或 cat
(C|c)at 表示:Cat 或 cat
fgrep:不支持正则表达式
fgrep "xxx":只查找给定的字符串,速度快
网友评论