grep
-
作用: 用 字符串或正则 匹配 文件/标准输入(按行匹配) 并输出被匹配的字符串所在行
grep [options] pattern [files ...] pattern: 匹配的规则, 可以是字符串也可以是正则表达式 files: 指定查找的一个或多个文件,若未指定文件,则从标准输入中查找 --option-- -i 忽略大小写 -v 反转匹配,0-,只打印不符合匹配规则的行 -n 显示匹配行的行号 -r 递归查找(当给出的files是目录时使用) -l 只打印匹配的行所在文件名 -c 只打印匹配的行数量 -a 不忽略二进制数据(默认忽略)
awk
-
作用: 接收 文本文件的内容/标准输入 用脚本处理后进行输出
awk [options] 'pattern {action} ...' [file,...] 作用: awk会将 文本文件/标准输入 的每一行依次传给pattern, 若符合pattern, 再传给action进行执行 -- option -- -F <分隔符>: 指定分隔字段的分隔符, 默认为空格 -v <变量名>=<值>: 设置awk内变量的值(可以在'pattern {action}'中调用) -f <脚本文件>: 指定awk脚本文件并执行 -- 内建变量 -- 简介: awk本身就有的变量, 可在pattern和action中使用 (非内建变量无需$) $n: 代表该行的第n个字段 (字段间由FS分隔) $0: 代表完整的行 NF: 代表当前行的字段数 FS: 字段分隔符 (默认是空白符, 可用-F 选项更换) OFS: 输出字段分隔符,输出多个字段时的字段之间的分隔符 (默认值是空白符) RS: 行分隔符,awk用其来判别 从哪到哪是一行 (默认为换行符, 若RS为空时则 文件/标准输入 会被认为是一整行) ORS: 输出行分隔符,输出多个行的处理结果时的分隔符 (默认为换行符) ARGC: 命令行参数的数目 ARGIND: 命令行中 代表 当前处理的文件 的参数 所在命令行参数的位置 (从0开始算) ARGV: 包含命令行参数的数组 FILENAME: 当前处理的文件名 FNR: 当前文件已经读取的行数(从1开始,会在文件切换时重置) NR: 所有文件已经读取的行数(从1开始,不会在文件切换时重置) IGNORECASE: 如果为1,则进行忽略大小写的匹配 (默认为0) -- pattern -- pattern: 可以是 条件表达式 或 正则表达式, 用于决定是否对当前行执行action (若省略, 则对所有行进行action) 条件表达式: 逻辑运算符有 && || ! 关系运算符有 < <= > >= != == 正则表达式: 格式: /regex/ 正则要被//包围 特殊格式: 可用 <变量>~/regex/ 或 <变量>!~/regex/ 来用正则匹配变量(~代表匹配正则,!~代表不匹配正则) 单独用 /regex/ 与 $0~/regex/ 效果相同 范围匹配: <pattern1>,<pattern2> 指匹配 从成功匹配<pattern1>的行开始 到 成功匹配<pattern2>的行结束 的所有行 (包括开始行与结束行) -- action -- {action}: 是在匹配到模式的行上执行的动作 (若省略,则默认动作是打印整行) 多个语句: 若action中包含多个语句, 用;隔开 (最后一个语句无需以;结尾) 可执行操作: 打印: print <变量或值>,... 运算: 使用运算符 + - * / % 赋值: 使用= += -= *= /= %= ^= **=给变量赋值 删除变量: delete <变量> 自加自减: <变量>++ <变量>-- ++<变量> --<变量> -- pattern 与 action -- 一个awk 不止可以有一个 pattern 与 一个 {action}, 可以用空格将多个pattern与action分隔开来 特殊pattern BEGIN{begin_action} 和 END{end_action}: BEGIN{begin_action}:在开始处理文件之前先执行{begin_action} END{end_action}:在处理完文件之后执行{begin_action} pattern? {action1} : {action2} 符合pattern的行传入action1, 不符合的传入action2
- AWK 工作原理
- AWK 数组
- AWK 条件语句与循环
- AWK 用户自定义函数
- AWK 内置函数
- 8 个有力的 Awk 内建变量
- AWK 官方手册
sed
-
作用: 利用脚本 编辑与处理 文本文件/标准输入, 并输出更改后的结果 (不更改文件)
sed [option] [file,...] -- option -- -e <script> 以选项中指定的script字符串来处理输入的文本文件 -f <script> 以选项中指定的script文件来处理输入的文本文件 -n 仅显示script处理过的行(默认输出所有行) -i 直接更改文件内容,而非输出更改后的结果(默认是不会更改文件的) -- script -- s/<匹配模式>/<替换内容>/<标志> 作用: 将每行第一个被 <匹配模式> 匹配的字符串 替换为 <替换内容> 匹配模式: 可以是字符串,也可以是正则表达式 标志: g: 全局替换 (替换所有被匹配到的字符串) i: 不分大小写 /<匹配模式>/p 作用: 打印所有被 <匹配模式> 匹配的字符串 所在的行 匹配模式: 可以是字符串,也可以是正则表达式 /<匹配模式>/d 作用: 删除所有被 <匹配模式> 匹配的字符串 所在的行 匹配模式: 可以是字符串,也可以是正则表达式 /<匹配模式>/a <string> 作用: 在所有被 <匹配模式> 匹配的字符串 所在的行 后追加字符串<string> 匹配模式: 可以是字符串,也可以是正则表达式 /<匹配模式>/i <string> 作用: 在所有被 <匹配模式> 匹配的字符串 所在的行 前插入字符串<string> 匹配模式: 可以是字符串,也可以是正则表达式 y/字符集1/字符集2/ 作用: 将 字符集1 中所有字符替换为 字符集2 中对应字符 字符集: 如y/abc/xyz/ 注: 字符集1 中字符要与 字符集2 中字符一一对应