文档章节

sed命令扩展使用操作

野雪球
 野雪球
发布于 10/21 22:33
字数 556
阅读 8
收藏 0

打印某行到某行之间的内容

假若文件test.txt的内容是:

ert
fff
**
[abcfd]
123
324
444
[rty]
**
fgfgf

怎么能截取

[abcfd]
123
324
444
[rty]

这一部分出来呢?

操作命令:

  1. 知道开始行和结束行的内容
[root@centos01 t1019]# sed -nr '/\[abcfd\]/,/\[rty\]/p' test.txt
[abcfd]
123
324
444
[rty]
  1. 知道是第几行到第几行
[root@centos01 t1019]# sed -n '4,8p' test.txt
[abcfd]
123
324
444
[rty]

sed 如何转换大小写字母

  • sed中,使用\u表示大写,\l表示小写

文件内容如下

[root@centos01 t1019]# cat test.txt 
ert
fff
**
[abcfd]
123
324
444
[rty]
**
fgfgf
Test line.
  1. 把每个单词的第一个字母由小写转换为大写
[root@centos01 t1019]# sed 's/\b[a-z]/\u&/g' test.txt 
Ert
Fff
**
[Abcfd]
123
324
444
[Rty]
**
Fgfgf
Test Line.
  1. 把所有小写转为大写
[root@centos01 t1019]# sed 's/[a-z]/\u&/g' test.txt 
ERT
FFF
**
[ABCFD]
123
324
444
[RTY]
**
FGFGF
TEST LINE.
  1. 把所有大写转为小写
[root@centos01 t1019]# sed 's/[A-Z]/\l&/g' test.txt 
ert
fff
**
[abcfd]
123
324
444
[rty]
**
fgfgf
test line.

sed在文件中某一行最后添加一个数字

[root@centos01 t1019]# sed -r 's/(^f.*)/\1 888/' test.txt
ert
fff 888
**
[abcfd]
123
324
444
[rty]
**
fgfgf 888
Test line.

删除某关键字的下一行到最后一行

方案一:

[root@centos01 t1019]# sed -i '/\[rty\]/{p;:a;N;$!ba;d}' test.txt 
[root@centos01 t1019]# cat test.txt 
ert
fff
**
[abcfd]
123
324
444
[rty]

定义一个标签a,匹配[rty],然后N把下一行加到模式空间里,匹配最后一行时,才退出标签循环,然后命令d,把这个模式空间里的内容全部清除。
if 匹配"[rty]"
:a
追加下一行
if 不匹配"$"
goto a
最后退出循环,d命令删除。

方案二:

[root@centos01 t1019]# sed -r '/\[rty\]/,$'d test.txt 
ert
fff
**
[abcfd]
123
324
444

打印m到n行含某个字符串的行

[root@centos01 t1019]# cat -n test.txt 
     1	ert
     2	fff
     3	**
     4	[abcfd]
     5	123
     6	324
     7	444
     8	[rty]
     9	fgfgf
    10	Test line.
[root@centos01 t1019]# sed -n '1,5{/f/p}' test.txt 
fff
[abcfd]
[root@centos01 t1019]# sed -n '1,10{/f/p}' test.txt 
fff
[abcfd]
fgfgf

© 著作权归作者所有

共有 人打赏支持
下一篇: awk命令
野雪球
粉丝 7
博文 45
码字总数 48359
作品 0
贵阳
私信 提问
linux中行编辑器sed的基本用法

linux中行编辑器sed的基本用法 sed的处理方法 默认逐行读取文件到内存中---->把符合模式的行读取到属于sed的内存中(sed的模式空间)进行编辑---->将处理后模式空间的内容显示到屏幕上 sed:行编...

fuvip
06/26
0
0
Shell正则三剑客 | sed命令

sed命令 命令格式 选项 常用选项 选项说明 sed -n 抑制自动输出 sed -e 添加脚本 sed -f 添加脚本文件 sed -i 编辑文件内容 sed -i.bak 修改文件同时创建.bak备份文件 sed -r 使用扩展的正则...

寰宇01
10/28
0
0
sed工具与正则表达式的使用(shell第四天)

sed工具 【流式编辑器】 —— 非交互,基于模式匹配过滤及修改文本 —— 逐行处理,并将结果输出到屏幕 ——可实现对文本的输出,删除,替换,复制,剪切,导入,导出等各种操作 命令格式: ...

Morning晨丿
04/30
0
0
linux下grep、awk和sed工具用法概览

linux下grep、awk和sed工具用法概览 在linux下,grep、awk和sed是非常强大的文本处理工具,其中grep命令主要用作文本搜索,而awk和sed命令侧重于文本的编辑等操作,另外awk本身还可以是编程语...

小陶小陶
09/11
0
0
Linux学习-10月17(sed)

9.4/9.5 sed 一、sed命令 sed命令主要用于删除、查找替换 sed的用法: sed命令模式:sed [option] 'sed命令' filename sed脚本模式:sed [option] 'sed script' filename sed选项: -n:只打印...

wxy丶
10/19
0
0

没有更多内容

加载失败,请刷新页面

加载更多

MariaDB 服务器在 MySQL Workbench 备份数据的时候出错如何解决

服务器是运行在 MariaDB 10.2 上面的,在使用 MySQL Workbench 出现错误: mysqldump: Couldn't execute 'SELECT COLUMN_NAME, JSON_EXTRACT(HISTOGRAM, '$."number-of-buckets-specified"'......

honeymose
35分钟前
0
0
apache顶级项目(二) - B~C

apache顶级项目(二) - B~C https://www.apache.org/ Bahir Apache Bahir provides extensions to multiple distributed analytic platforms, extending their reach with a diversity of s......

晨猫
今天
3
0
day152-2018-11-19-英语流利阅读

“超级食物”竟然是营销噱头? Daniel 2018-11-19 1.今日导读 近几年来,超级食物 superfoods 开始逐渐走红。不难发现,越来越多的轻食餐厅也在不断推出以超级食物为主打食材的健康料理,像是...

飞鱼说编程
今天
9
0
SpringBoot源码:启动过程分析(二)

接着上篇继续分析 SpringBoot 的启动过程。 SpringBoot的版本为:2.1.0 release,最新版本。 一.时序图 一样的,我们先把时序图贴上来,方便理解: 二.源码分析 回顾一下,前面我们分析到了下...

Jacktanger
昨天
3
0
Apache防盗链配置,Directory访问控制,FilesMatch进行访问控制

防盗链配置 通过限制referer来实现防盗链的功能 配置前,使用curl -e 指定referer [root@test-a test-webroot]# curl -e "http://www.test.com/1.html" -x127.0.0.1:80 "www.test.com/1.jpg......

野雪球
昨天
7
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部