grep
命令
grep
命令基本语法
grep
命令是打印匹配文本行,其全称为 Global Search Regular Expression and Print out the line;基本语法如下:
grep [OPTIONS] PATTERN [FILE...]
grep [OPTIONS] [-e PATTERN | -f FILE] [FILE...]
其中,OPTIONS
表示选项;PATTERN
表示匹配模式,匹配模式可以是字符串、变量、正则表达式,若匹配模式中含义空格,则需要使用双引号将匹配模式引起来;FILE
表示一系列文件;grep
命令从文件中搜索满足指定匹配模式的文本行,并打印出来。
在前面文章《正则表达式》可知,正则表达式的分类为:
- 基本正则表达式(Basic Regular Expression):Basic RegEx,简称 BRE
- 扩展正则表达式(Extended Regular Expression):Extended RegEx,简称 ERE
- Perl 正则表达式(Perl Regular Expression):Perl RegEx,简称 PCRE;
grep
命令根据不同的参数支持不同的正则表达式:
grep
命令后不跟任何参数(默认),则表示要使用“BRE”;grep
命令后跟-E
参数,则表示要使用“ERE”;grep
命令后跟-P
参数,则表示要使用“PCRE”;
常用OPTIONS
选项如下表所示:
选项 | 说明 |
---|---|
-E | 指定 PATTERN 匹配模式为扩展正则表达式 |
-F | 指定 PATTERN 匹配模式为固定的字符串 |
-G | 指定 PATTERN 匹配模式为基本正则表达式 |
-P | 指定 PATTERN 匹配模式为 Perl 正则表达式 |
-e PATTERN | 指定 PATTERN 为一个或多个搜索模式 |
-f FILE | 指定包含搜索模式的 FILE |
-i | 匹配是忽略字母大小写 |
-v | 显示所有与匹配模式不匹配的文本行 |
-w | 执行单词搜索 |
-x | 显示与指定模式精确匹配而不含其他字符的文本行 |
-y | 与选项 -i 相同功能 |
-c | 只打印匹配的文本行的行数,不显示匹配内容 |
-l | 只显示匹配文本行的文件名,不显示匹配内容 |
-n | 列出所有匹配的文本行,并显示行号 |
-r | 递归搜索目录(当前目录及其各级子目录) |
-s | 不显示错误信息 |
流编辑器 sed
sed
命令
sed
命令从文件或者标准输入中一次读取一行数据,将该行数据复制到缓冲区,然后读取命令行或脚本的编辑子命令,对缓冲区中的文本行进行编辑。重复此工作,直到所有文本行都处理完毕。
sed
命令编辑的是文件是原始文件在缓冲区中的副本,并不影响原始文件,但是可以把编辑结果通过输出重定向保存起来。
sed
命令的基本语法如下所示:
sed [OPTION]... {script} [input-file]...
常用选项OPTION
如下表所示:
选项 | 说明 |
---|---|
-n | 取消默认输出 |
-e script | 允许执行多个脚本 |
-f script-file | 从脚本文件中读取命令 |
-i | 直接修改原始文件 |
-l N | 指定行长度为 N |
-r | 在脚本中使用扩展正则表达式 |
-s | 把文件作为单独文件 |
-u | 最低限度的缓存输入与输出 |
文本行定位
sed
命令提供了两种方式来实现文本行的定位:行号定位、正则表达式定位
行号定位<