4、grep和正则表达式
1、grep程序
Linux下文本处理三剑客--grep sed awk
grep--文本行过滤工具
sed--文本行编辑器(流编辑器)
awk--报告生成器(做文本输出格式化)
1、grep程序
Linux下文本处理三剑客--grep sed awk
grep--文本行过滤工具
sed--文本行编辑器(流编辑器)
awk--报告生成器(做文本输出格式化)
grep 包含三个命令grep egrep fgrep 用来进行行模式(pattern)匹配
egrep =gerp -E //使用扩展的正则表达式进行匹配
fgrep =fast grep //只使用文件通配符进行匹配
*grep默认使用正则表达式进行文本匹配*
egrep =gerp -E //使用扩展的正则表达式进行匹配
fgrep =fast grep //只使用文件通配符进行匹配
*grep默认使用正则表达式进行文本匹配*
grep用法:
grep[option]...PATTERN[fillename]
grep[option]...PATTERN[fillename]
grep常见选项--option:
-E 支持使用扩展的正则表达式(ERE)(regexp)
-P 使用Perl语言的正则表达式引擎进行搜索(每一种语言的正则表达式引擎都不相同,甚至sed grep awk使用的引擎都不相同)
-i 忽略大小写
-v 进行反选
-o 仅仅输出匹配的内容(默认输出是匹配到的行)
--color=auto 语法着色
-n 显示行号
-E 支持使用扩展的正则表达式(ERE)(regexp)
-P 使用Perl语言的正则表达式引擎进行搜索(每一种语言的正则表达式引擎都不相同,甚至sed grep awk使用的引擎都不相同)
-i 忽略大小写
-v 进行反选
-o 仅仅输出匹配的内容(默认输出是匹配到的行)
--color=auto 语法着色
-n 显示行号
2、pattern“模式”--正则表达式
作用:通过一些特殊字符,来表示一类字符内容,然后交给前面的命令来执行,如果用特殊字符本身,就需要进行转义
文件通配符 * ? [] [^]
1、字符匹配
. 任意一个字符 相当于?
[]匹配范围内任意一个字符,同文件通配符
[^]匹配范围外任意一个字符,同文件通配符
字符类: [:digit:][:alnum:][:alpha:][:lower:][:upper:][:space:][:punct:]
2、次数匹配
* 匹配前面的字符0次到n次
?匹配前面的字符0次到1次
+ 匹配前面的字符1次到n次
{m}匹配前面的字符m次
{m,n}匹配前面的字符m到n次
{0,n}匹配前面的字符0到n次
{m,}匹配前面的字符至少m次
3、位置锚定
^ 锚定行首
$ 锚定行尾
锚定词首和锚定词尾
>锚定词尾
<锚定词首
4、分组
abc* abcccc abc需要看成一个整体
() 实例: (abc)* abcabcabc abcccc
**分组特性:默认情况下,Linux系统会为分组指定变量,变量表示形式1 2 3…
作用:通过一些特殊字符,来表示一类字符内容,然后交给前面的命令来执行,如果用特殊字符本身,就需要进行转义
文件通配符 * ? [] [^]
1、字符匹配
. 任意一个字符 相当于?
[]匹配范围内任意一个字符,同文件通配符
[^]匹配范围外任意一个字符,同文件通配符
字符类: [:digit:][:alnum:][:alpha:][:lower:][:upper:][:space:][:punct:]
2、次数匹配
* 匹配前面的字符0次到n次
?匹配前面的字符0次到1次
+ 匹配前面的字符1次到n次
{m}匹配前面的字符m次
{m,n}匹配前面的字符m到n次
{0,n}匹配前面的字符0到n次
{m,}匹配前面的字符至少m次
3、位置锚定
^ 锚定行首
$ 锚定行尾
锚定词首和锚定词尾
>锚定词尾
<锚定词首
4、分组
abc* abcccc abc需要看成一个整体
() 实例: (abc)* abcabcabc abcccc
**分组特性:默认情况下,Linux系统会为分组指定变量,变量表示形式1 2 3…
2、语句的逻辑关系
if
if
for----不易进入死循环---放入for循环的列表
while--指定循环条件为True时进入循环
until--指定循环条件为False时进入循环(不要进入死循环)
case--编写LInux的程序启动脚本
打断循环
break
continue
exit--指定退出当时程序
read--input()输入
echo--print()输出