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~个人笔记🏰!
评论