文档章节

sed命令扩展使用操作

野雪球
 野雪球
发布于 2018/10/21 22:33
字数 556
阅读 10
收藏 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
博文 70
码字总数 79542
作品 0
贵阳
私信 提问
sed工具与正则表达式的使用(shell第四天)

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

Morning晨丿
2018/04/30
0
0
linux中行编辑器sed的基本用法

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

fuvip
2018/06/26
0
0
linux下grep、awk和sed工具用法概览

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

小陶小陶
2018/09/11
0
0
转:通用线程 -- sed 实例,第 1 部分

挑选编辑器 在 UNIX 世界中有很多文本编辑器可供我们选择。思考一下 -- vi、emacs 和 jed 以及很多其它工具都会浮现在脑海中。我们都有自己已逐渐了解并且喜爱的编辑器(以及我们喜爱的组合键...

范堡
2009/05/06
209
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丶
2018/10/19
0
0

没有更多内容

加载失败,请刷新页面

加载更多

漏洞防御与修复工作

漏洞管理工作是企业安全建设必不可少的一环,在风险管理工作中,漏洞管理能够防患于未然,企业对漏洞管理有着广泛的基础建设和实践经验。但随着攻防技术的发展,传统漏洞管理的安全技术和管理...

linuxprobe16
25分钟前
0
0
MicroPython技术及应用前景

1 Micropython技术是什么? MicroPython极精简高效的实现了Python3语言。它包含Python标准库的一小部分,能在单片机和受限环境中运行。 1.1 MicroPython发展 由剑桥大学的理论物理学家乔治....

bodasisiter
31分钟前
0
0
跟我学Spring Cloud(Finchley版)-13-通用方式使用Hystrix

本节详细讲解使用Hystrix的通用方式。 简介 Hystrix是由Netflix开源的一个延迟和容错库,用于隔离访问远程系统、服务或者第三方库,防止级联失败,从而提升系统的可用性与容错性。Hystrix主要...

周立_ITMuch
40分钟前
0
0
🛠️Hanjst/汉吉斯特更新加JavaScript运行时优化等

这是 Hanjst/汉吉斯特 发布以来的首个主要升级更新版本。这次的主要升级更新的内容包括移除HTML Comments注释行, 优化在 Hanjst include模板文件时的JavaScript运行时环境。 Hanjst 在设计和...

wadelau
今天
2
0
OSChina 周六乱弹 —— 舔狗是没有好下场的

Osc乱弹歌单(2019)请戳(这里) 【今日歌曲】 @我没有抓狂 :#今天听什么# #今天听这个# 分享 Nirvana 的歌曲《Smells Like Teen Spi...》 《Smells Like Teen Spi...》- Nirvana 手机党少...

小小编辑
今天
508
14

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部