正则表达式
菜鸟
MDN
| re |
含义 |
| * |
匹配前面的子表达式零次或多次 |
| . |
匹配除换行符(\n、\r)之外的任何单个字符 |
| ? |
匹配前面的子表达式零次或一次 |
| + |
匹配前面的子表达式一次或多次 |
| ^ |
匹配输入字符串的开始位置 |
| $ |
匹配输入字符串的结束位置 |
| [] |
匹配所包含的任意一个字符 |
| [^] |
匹配未包含的任意字符 |
| \ |
将下一个字符标记为一个特殊字符、或一个原义字符、或一个向后引用、或一个八进制转义符 |
| {n} |
n 是一个非负整数。匹配确定的 n 次 |
| {n,m} |
m 和 n 均为非负整数,其中n <= m。匹配 [n, m] 次 |
| x|y |
匹配 x 或 y |
| 修饰符 |
含义 |
| i |
ignore - 不区分大小写 |
| g |
global - 全局匹配 |
| m |
multi line - 多行匹配 |
| s |
特殊字符圆点 . 中包含换行符 \n |
grep
grep [OPTION...] PATTERNS [FILE...]
awk
菜鸟
awk — pattern scanning and processing language
awk '{[pattern] action}' {filenames}
2 this is a test
3 Do you like awk
This's a test
10 There are orange,apple,mongo
awk '{print $1,$4}' log.txt
awk -F, '{print $1,$2}' log.txt # 使用","分割
awk -F[ ,] '{print $1,$2}' log.txt # 使用多个分隔符.先使用空格分割,然后对分割结果再使用","分割
awk 'BEGIN{}END{}' log.txt
sed
sed [option][action] filename
-n 输出处理过的
-e 多条命令
-i 修改源文件
a 行后追加
c 行替换
i 行前插入
d 删除
p 打印
s 替换
n,m 行选择
另外
cut
-f 列
-d 分隔符
-c 字符
sort
-f 忽略大小写
-n 数值
-r 反向
-t 分隔符(\t)
-k 字符范围