Shell入门到放弃
正则表达式
- Linux文件中每行都有一个$结尾,空行也有,一般看不见这个$
 
基本-BRE
| 符号 | 释义 | 
|---|---|
| ^ | 尖角号,用于模式的最左侧,如“^oldboy”,匹配以oldboy单词开头的行 | 
| $ | 美元符,用于模式的最右侧,如”oldboy$”,表示以oldboy单词结尾的行 | 
| ^$ | 组合符,表示空行 | 
| . | 匹配任意一个且只有一个字符,不能匹配空行 | 
| \ | 转义字符,让特殊含义的字符,现出原形,还原本意,例如\.代表小数点 | 
| * | 匹配前一个字符(连续出现)0次或1次以上,重复0次代表空,即匹配所有内容 | 
| .* | 组合符,匹配所有内容 | 
| ^.* | 组合符,匹配任意多个字符开头的内容 | 
| .*$ | 组合符,匹配以任意多个字符结尾的内容 | 
| [abc] | 匹配集合内的任意一个字符,a或b或c,可以写[a-c] | 
| [^abc] | 匹配除了^后面的任意字符,a或b或c,^表示对[abc]的取反 | 
扩展-ERE
| 符号 | 释义 | 
|---|---|
| + | 匹配前一个宁符1次或多次 | 
| [:/]+ | 匹配括号内的”∵:”或者”/“字符1次或多次 | 
| ? | 匹配前一个字符0次或1次 | 
| | | 表示或者,同时过滤大哥字符串 | 
| () | 分组过滤,被括起来的内容表示一个整体 | 
| a{n,m} | 匹配前一个字符最少n次,最多m次 | 
| a{n,} | 匹配前一个字符最少n次 | 
| a{n} | 匹配前一个字符正好n次 | 
| a{,m} | 匹配前一个字符最多m次 | 
grep-对文本内容进行过滤,筛选
| 参数 | 释义 | 
|---|---|
| -v | 排除匹配结果 | 
| -n | 显示匹配行与行号 | 
| -i | 不区分大小写 | 
| -c | 只统计匹配的行数 | 
| -E | 使用egrep命令(加这个参数可以使用扩展ERE) | 
| –color=auto | 为grep过滤结果添加颜色 | 
| -w | 只匹配过滤的单词 | 
| -o | 只输出匹配的内容 | 
grep语法
1  |  | 
sed-对文件或是数据流进行加工处理
- 注意sed和awk使用单引号,双引号有特殊解释
 - sed是Stream Editor(字符流编辑器)的缩写,简称流编辑器。
 - sed是操作、过滤和转换文本内容的强大工具。
 
sed参数
| 参数 | 解释 | 
|---|---|
| -n | 取消默认sed的输出,常与sed内置命令p一起用 | 
| -i | 直接将修改结果写入文件,不用-i, sed修改的是内存数据 | 
| -e | 多次编辑,不需要管道符了 | 
| -r | 支持正则扩展 | 
sed内置命令字符
| sed的内置命令字符 | 解释 | 
|---|---|
| a | append,对文本追加,在指定行后面添加一行/多行文本 | 
| d | Delete,删除匹配行 | 
| i | insert,表示插入文本,在指定行前添加一行/多行文本 | 
| p | Print ,打印匹配行的内容,通常p与-n一起用 | 
| s/正则/替换内容/g | 匹配正则内容,然后替换内容(支持正则),结尾g代表全局匹配 | 
sed语法
1  |  | 
sed增删改查操作
1  |  | 
查
输出文件第二到三行
1  |  | 
1  |  | 
输出文件第二及下面三行
1  |  | 
1  |  | 
匹配qq所在的行并打印
1  |  | 
1  |  | 
增
第二行下面增加一行数据
1  |  | 
第二行上面增加一行数据
1  |  | 
a空模式匹配
1  |  | 
改
My全部改为I
1  |  | 
1  |  | 
多次编辑规则
1  |  | 
删
匹配qq所在的一行并删除
1  |  | 
1  |  | 
匹配第3行到最后一行并删除
1  |  | 
1  |  | 
删除第二行到第三行
1  |  | 
1  |  | 
awk
| 参数 | 解释 | 
|---|---|
| -F | 指定分割字段符 | 
| -v | 定义或修改一个awk内部的变量 | 
| -f | 从脚本文件中读取awk命令 | 
| 内置变量 | 解释 | 
|---|---|
| FS | 输入字段分隔符,默认为空白字符 | 
| oFS | 输出字段分隔符,默认为空白字符 | 
| RS | 输入记录分隔符(输入换行符),指定输入时的换行符 | 
| ORS | 输出记录分隔符(输出换行符),输出时用指定符号代替换行符 | 
| NF | NF: number of Field,当前行的字段的个数(即当前行被分割成了几列),字段数量 | 
| NR | NR:行号,当前处理的文本行的行号。 | 
| FNR | FNR:各文件分别计数的行号 | 
| FILENAME | FILENAME:当前文件名 | 
| ARGC | ARGC:命令行参数的个数 | 
| ARGV | ARGV:数组,保存的是命令行所给定的各参数 | 
真寄霸多、学尼玛、放弃了
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 🏰linlink~个人笔记🏰!
 评论
