四剑客-sed

增删改查

进阶:模式空间与保持空间 把文件中所有的回车替换为空格

1.sed命令执行流程

分析,解决故障,问题的时候
执行流程
执行流程: 四个字 找谁干啥(条件命令)
image.png

2.sed命令查找

p-print 显示/打印
image.png
#案例01 显示第3行     固定行号 某一行  
101,oldboy,CEO
102,zhangya,CTO
103,李导996,COO
104,yy,CFO
105,feixue,CIO
110,lidao,COCO
119,huiling,CFO
[root@m01 /server/files]# sed -n '3p' sed.txt 
103,李导996,COO
[root@m01 /server/files]# 
#案例02 显示文件的第2到第5行     行号范围  
[root@m01 /server/files]# sed -n '2,5p' sed.txt
102,zhangya,CTO
103,李导996,COO
104,yy,CFO
105,feixue,CIO
[root@m01 /server/files]# 
#案例03 模糊查找   查找包含 oldboy 单词的行
grep 'oldboy'
[root@m01 /server/files]# sed -n '/oldboy/p' sed.txt 
101,oldboy,CEO
#案例04 模糊查找 使用正则匹配  
[root@m01 /server/files]# sed -nr '/oldboy|lidao/p' sed.txt 
101,oldboy,CEO
110,lidao,COCO
#案例05 模糊查找, 范围 匹配 从包含103的行 到匹配119的行
[root@m01 /server/files]# sed -n   '/103/,/119/p' sed.txt 
103,李导996,COO
104,yy,CFO
105,feixue,CIO
110,lidao,COCO
119,huiling,CFO
[root@m01 /server/files]# #sed -n   '/从哪里来/,/到哪里去/p' sed.txt 

#取出 日志中 11:02 到 11:30日志
#sed -n '//,//p' access.log 
sed -n '/11:02:00/,/11:30:00/p' access.log |less 
#案例06   实现 grep -A功能 了解
grep -A  5     oldboy   oldboy.txt 
[root@m01 /server/files]# cat sed.txt 
101,oldboy,CEO
102,zhangya,CTO
103,李导996,COO
104,yy,CFO
105,feixue,CIO
110,lidao,COCO
119,huiling,CFO
[root@m01 /server/files]# sed -n '3,+5p'   sed.txt 
103,李导996,COO
104,yy,CFO
105,feixue,CIO
110,lidao,COCO
119,huiling,CFO
[root@m01 /server/files]# sed -n '/oldboy/,+5p'   sed.txt 
[root@m01 /server/files]# sed -n '/oldboy/,+5p'   sed.txt 
101,oldboy,CEO
102,zhangya,CTO
103,李导996,COO
104,yy,CFO
105,feixue,CIO
110,lidao,COCO
#案例07 实现有规律的 匹配多行 了解
[root@m01 /server/files]# seq 10 |sed -n '1~2p'
1
3
5
7
9
[root@m01 /server/files]# seq 10 |sed -n '2~2p'
2
4
6
8
10
#案例08 排除   oldboy行排除掉
[root@m01 /server/files]# sed -n '/oldboy/p' sed.txt 
101,oldboy,CEO
[root@m01 /server/files]# sed -n '/oldboy/!p' sed.txt 
102,zhangya,CTO
103,李导996,COO
104,yy,CFO
105,feixue,CIO
110,lidao,COCO
119,huiling,CFO
[root@m01 /server/files]# sed '/oldboy/d' sed.txt 
102,zhangya,CTO
103,李导996,COO
104,yy,CFO
105,feixue,CIO
110,lidao,COCO
119,huiling,CFO

3.删除

d---delete
image.png
# 案例01 
[root@m01 /server/files]# sed '/oldboy/d' sed.txt 
102,zhangya,CTO
103,李导996,COO
104,yy,CFO
105,feixue,CIO
110,lidao,COCO
119,huiling,CFO
# 案例02 删除/显示最后一行
[root@m01 /server/files]# sed '1d' sed.txt 
102,zhangya,CTO
103,李导996,COO
104,yy,CFO
105,feixue,CIO
110,lidao,COCO
119,huiling,CFO
[root@m01 /server/files]# sed '$d' sed.txt 
101,oldboy,CEO
102,zhangya,CTO
103,李导996,COO
104,yy,CFO
105,feixue,CIO
110,lidao,COCO
[root@m01 /server/files]# 
[root@m01 /server/files]# 
[root@m01 /server/files]# 
[root@m01 /server/files]# sed -n '$p' sed.txt 
119,huiling,CFO
#案例03 删除 文件中从包含lidao的行到最后一行的内容
[root@m01 /server/files]# cat   sed.txt 
101,oldboy,CEO
102,zhangya,CTO
103,李导996,COO
104,yy,CFO
105,feixue,CIO
110,lidao,COCO
119,huiling,CFO
[root@m01 /server/files]# sed '/lidao/,$d' sed.txt 
101,oldboy,CEO
102,zhangya,CTO
103,李导996,COO
104,yy,CFO
105,feixue,CIO
4 增加
cai 行为单位
image.png
#案例01 在文件的最后一行后面增加一行内容 lidao007,007,007,/home/hlj
[root@m01 /server/files]# sed '$a lidao007,007,007,/home/hlj' sed.txt 
101,oldboy,CEO
102,zhangya,CTO
103,李导996,COO
104,yy,CFO
105,feixue,CIO
110,lidao,COCO
119,huiling,CFO
lidao007,007,007,/home/hlj
#案例02 在 第1行上面插入一行内容   lidao007,007,007,/home/hlj
[root@m01 /server/files]# sed '1i lidao007,007,007,/home/hlj' sed.txt 
lidao007,007,007,/home/hlj
101,oldboy,CEO
102,zhangya,CTO
103,李导996,COO
104,yy,CFO
105,feixue,CIO
110,lidao,COCO
119,huiling,CFO
#案例03 替换第1行的内容为 lidao007,007,007,/home/hlj
[root@m01 /server/files]# sed '1c lidao007,007,007,/home/hlj' sed.txt 
lidao007,007,007,/home/hlj
102,zhangya,CTO
103,李导996,COO
104,yy,CFO
105,feixue,CIO
110,lidao,COCO
119,huiling,CFO
#案例04 在/etc/ssh/sshd_config 最后增加内容
[root@m01 /server/files]# sed '$a Port=22\nPermitRootLogin=no\nUseDNS=no\nGSSAPIAuthcation=no' 
/etc/ssh/sshd_config 
cat >>sshd_config<<EOF
Port=22
PermitRootLogin=no
UseDNS=no
GSSAPIAuthcation=no
EOF
echo 'Port=22
PermitRootLogin=no
UseDNS=no
GSSAPIAuthcation=no'
5 修改(替换)
s###g s@@@g s///g sAAA
s------替换 substitute sub
#案例01 替换
[root@m01 /server/files]# sed 's#oldboy#oldgirl#g' sed.txt 
101,oldgirl,CEO
102,zhangya,CTO
103,李导996,COO
104,yy,CFO
105,feixue,CIO
110,lidao,COCO
119,huiling,CFO
#案例02 全局替换 非全局替换
# g全局替换  
# 不加上g默认是只替换每一行第1个匹配的内容
[root@m01 /server/files]# sed 's#[0-9]#<666>#g' sed.txt 
<666><666><666>,oldboy,CEO
<666><666><666>,zhangya,CTO
<666><666><666>,李导<666><666><666>,COO
<666><666><666>,yy,CFO
<666><666><666>,feixue,CIO
<666><666><666>,lidao,COCO
<666><666><666>,huiling,CFO
[root@m01 /server/files]# sed 's#[0-9]#<666>#' sed.txt 
<666>01,oldboy,CEO
<666>02,zhangya,CTO
<666>03,李导996,COO
<666>04,yy,CFO
<666>05,feixue,CIO
<666>10,lidao,COCO
<666>19,huiling,CFO
#案例03 后向引用
[root@m01 /server/files]# echo   {01..5}{a..e} |sed -r 's#([0-9a-z]+)#<\1>#g'
<01a> <01b> <01c> <01d> <01e> <02a> <02b> <02c> <02d> <02e> <03a> <03b> <03c> <03d> <03e> <04a> <04b> <04c> 
<04d> <04e> <05a> <05b> <05c> <05d> <05e>
6 sed进阶
#案例01 把文件中的回车替换为空格(使用sed)  
[root@m01 /server/files]# cat sed.txt 
101,oldboy,CEO
102,zhangya,CTO
103,李导996,COO
104,yy,CFO
105,feixue,CIO
110,lidao,COCO
119,huiling,CFO
## 直接使用出现故障
[root@m01 /server/files]# sed 's#\n# #g' sed.txt 
101,oldboy,CEO
102,zhangya,CTO
103,李导996,COO
#通过sed命令 N选项读取多行
seq 10 | sed 'N;s#\n# #g'
seq 10 | sed 'N;N;N;N;N;N;N;N;N;s#\n# #g'
#sed命令自带 循环格式
[root@m01 /server/files]# seq 5 | sed ':label ;N;s#\n# #g; t label ' 
1 2 3 4 5
[root@m01 /server/files]# 
#显示 循环执行流程
[root@m01 /server/files]# seq 5 | sed ':label ;N;s#\n# #g;p; t label ' 
1 2
1 2 3
1 2 3 4
1 2 3 4 5
1 2 3 4 5
# N 读写下一行内容,到内存中(模式空间)
# 循环   :标签   ; 循环内容; t 标签
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 213,254评论 6 492
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,875评论 3 387
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 158,682评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,896评论 1 285
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,015评论 6 385
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,152评论 1 291
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,208评论 3 412
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,962评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,388评论 1 304
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,700评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,867评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,551评论 4 335
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,186评论 3 317
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,901评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,142评论 1 267
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,689评论 2 362
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,757评论 2 351

推荐阅读更多精彩内容

  • Sed 概述:sed是一个非交互的文本编辑器,可对文本文件和标准输入进行编辑,,可以编辑一个或者多个文件,简化对问...
    阿当运维阅读 221评论 0 0
  • sed概念说明:字符流过滤编辑和文字符流转换工具 文本处理方式:增、删、改、查。 1、标准语法格式 2、常用选项 ...
    你好_请关照阅读 519评论 0 0
  • 1.四剑客 2.正则表达式 基础正则 扩展 正则 perl正则 注意事项: 一行一行过滤 注意字符集:export...
    linux_龍阅读 460评论 0 1
  • 一、前言 我们都知道,在Linux中一切皆文件,比如配置文件,日志文件,启动文件等等。如果我们相对这些文件进行一些...
    以七v为书阅读 1,509评论 0 5
  • 表情是什么,我认为表情就是表现出来的情绪。表情可以传达很多信息。高兴了当然就笑了,难过就哭了。两者是相互影响密不可...
    Persistenc_6aea阅读 124,597评论 2 7