linux三剑客
- awk
- sed
- grep
sed:流编辑器(stream editor)
主要功能:增删改查
#sed格式:sed [选项] [sed内置命令字符] 文件
| 选项 | 含义 |
|---|---|
| - n | 取消默认输出 |
| - i | 修改内容而不是输出到终端 |
| -r | 支持扩展正则 |
sed内置命令字符
| 字符 | 解释说明 |
|---|---|
| a | #全拼append,表示追加文本>>,在指定行后添加一行或多行文本※ |
| d | #全拼delete,表示删除匹配行 |
| i | #全拼insert,表示插入文本,在指定行前添加一行或多行文本※ |
| p | #全拼print,表示打印匹配行的内容,通常p会与选项-n一起使用※ |
创建环境
[root@libielang /oldboy]# cat -n lidao.txt
1 101,oldboy,CEO
2 102,zhangyao,CTO
3 103,Alex,COO
4 104,yy,CFO
5 102,zhangyao,CTO
6 103,Alex,COO
查找指定的一行
[root@libielang /oldboy]# sed -n '3p' lidao.txt
103,Alex,COO
3p,指定查找第三行
查找连续多行
[root@libielang /oldboy]# sed -n '1,3p' lidao.txt
101,oldboy,CEO
102,zhangyao,CTO
103,Alex,COO
'1,3p’查询第1行到第3行
查询不连续的行
[root@libielang /oldboy]# sed -n '1p;4p' lidao.txt
101,oldboy,CEO
104,yy,CFO
查询第1行和第4行
a:在指定行下面一行添加
[root@libielang /oldboy]# sed '2aI love xxx' lidao.txt
101,oldboy,CEO
102,zhangyao,CTO
I love xxx ##添加写入的行
103,Alex,COO
104,yy,CFO
102,zhangyao,CTO
103,Alex,COO
在第二行下面一行添加一行
i:在指定行上面写入一行
[root@libielang /oldboy]# sed '2iI love xxx' lidao.txt
101,oldboy,CEO
I love xxx ##写入的位置
102,zhangyao,CTO
103,Alex,COO
104,yy,CFO
102,zhangyao,CTO
103,Alex,COO
在第二行上面一行写入
**c:把指定行内容清空在写入
[root@libielang /oldboy]# sed '4cI love xxx' lidao.txt
101,oldboy,CEO
102,zhangyao,CTO
103,Alex,COO
I love xxx
102,zhangyao,CTO
103,Alex,COO
把第四行内容清空再写入
**d:删除(delete)
[root@libielang /oldboy]# sed '3d' lidao.txt
101,oldboy,CEO
102,zhangyao,CTO
104,yy,CFO
102,zhangyao,CTO
103,Alex,COO
删除第三行
s:替换
[root@libielang /oldboy]# sed 's#zhangyao#lidao#g' lidao.txt
101,oldboy,CEO
102,lidao,CTO
103,Alex,COO
104,yy,CFO
102,lidao,CTO
103,Alex,COO
将文件里的zhangyao替换为lidao
格式:s#xxx#yyy#g
s:替换 。g:全局替换
xxx要替换的内容,yyy替换为什么。#分隔符
命令参数补充
命令grep
| 参数 | 功能说明 |
|---|---|
| -A | #显示出grep找出的内容及下面的指定行数 |
| -B | #显示出grep找出的内容及上面的指定行数 |
| -C | #显示出grep找出的内容及上下指定的行号(-C== -A -B) |
| -c | #统计包含内容的行数 |
| -R | #递归进行过滤 |
| -l | #只显示包含过滤内容的文件名,不显示文件内容 |
本文深入解析Linux下的三大文本处理工具:awk、sed和grep的功能与用法,包括sed的增删改查操作,grep的高级搜索技巧,以及如何在实际场景中应用这些工具进行高效的数据处理。
928

被折叠的 条评论
为什么被折叠?



