Linux命令行操作之sed

 我来答
老男孩教育
2022-11-22 · 百度认证:北京一天天教育科技有限公司官方账号,教育领域创作者
老男孩教育
专注于Linux高级运维、Python开发、大数据培训,为您分享行业前沿的技术,有效的学习方法和有价值的学习资料。
向TA提问
展开全部

sed命令行格式:sed [options] 'command' file(s)

options常用选项:

-n或--quiet或——silent:仅显示script处理后的结果;

-e:以选项中的指定的script来处理输入的文本文件;

-f:以选项中指定的script文件来处理输入的文本文件;

-r∶sed 的动作支援的是延伸型正规表示法的语法;

-i∶直接修改读取的档案内容,而不是由萤幕输出;

-h或--help:显示帮助;

-V或--version:显示版本信息。

Command常用命令:

a:新增,a 的后面可以接字符串,而这些字符串会在新的一行出现(目前的下一行);

c:取代,c 的后面可以接字符串,这些字符串可以取代 n1.n2 之间的行;

d:删除,d 后面通常不接任何字符串;

i:插入,i 的后面可以接字符串,而这些字符串会在新的一行出现(目前的上一行);

p:列印,亦即将某个选择的资料印出。通常 p 会与参数 sed -n 一起运作;

s:取代,可以直接进行取代的工作,通常与正规表达式搭配使用。

实例说明:

新增操作:a命令

sed '/^bird/a\test' file将test追加到 以bird开头的行后面

删除操作:d命令

sed '/^$/d' file #删除空白行;

sed '2d' file #删除第二行;

sed '2.$d' file #删除第2行到最后一行;

sed '$d' file #删除最后一行;

sed '/^bird/'d file #删除所有开头是bird的行;

插入操作:i命令

sed -i '3i\bird ' bird.conf #在bird.conf文件第3行之前插入bird

替换文本中的字符串:s命令

sed 's/bird/birds/' file #将文本中的bird替换成birds;

sed -i 's/ bird / birds /g' file #将file文件中每一行的第一个bird替换为birds;

华源网络
2022-07-02 · TA获得超过5589个赞
知道小有建树答主
回答量:2486
采纳率:100%
帮助的人:146万
展开全部

sed "stream editor",字符流编辑器,按行处理文件,把正在处理的行保存到一个临时缓冲区,处理完数据后,把结果发送到屏幕,并删除缓存内容。不消耗内存,但耗时。

sed -n '2p' 只打印第二行。p为print。-n为只打印指定内容

sed -n '/asdf/,/saf/p' file 打印两者匹配之间的所有行
-n 和p同时出现

sed -n '2,/abc/p' file 打印从第2行到匹配到abc的行

删除空行:sed '/^ 行尾

删除只有空格行:sed '/^ +$d' file

将A开始的行震撼替换成NA:sed 's/^A.*$/NA/g' file

匹配次数

示例:
sed -n '/^jiayou[a-zA-Z]*/p' file
sed -n '/^jiayou[a-z]?/p' file 匹配以jiyou开始,后面跟0个或1个小写字母
sed -n '/(123){2}/p' datafile.txt 打印连续出现两次的行。进行分组。
去掉太多转义符,sed -r -n '/(123){2}/p' datafile.txt
sed '[address]d' file 删除命令
sed '4,8d' file
sed '4,$d' datafile 删除第4行到最后一行

sed 's/abc/ABC/' file提每一行第一次匹配进行替换
sed '2,5s/abc/ABC/' datafile对2-5行范围第一次匹配进####行替换
sed 's:abc:ABC' file 修改定界符
sed -n 's/abc/ABC/gp' file只打印替换的行
sed -n 's/abc/ABC/i' file 替换时忽略大小写

sed '3i abc' file 第三行前插入文本
sed '3a ABC' file第三行后追加文本
sed '3c ABC' file 替换第三行内容
sed '3,6c abc' file替换指定范围的行换成一行内容sed sed '3i ABC ENF\nAAAA bbbb' datafile.txt

对同一文件使用多条命令: sed -e
sed -r 不用加转义符号
sed -f script.file datafile 把命令写入文件,-f执行文件内操作
sed -n 取消默认输出
sed -i 直接修改输入文件内容,而不是输出到终端
sed -r 使用扩展正则表达式
sed -n '/abc/, 表示最后一行,不是正则表达式的$
sed -n '/abc/!p' datafile 不匹配abc的行!表否定
sed -n '1!p' datafile 不打印第一行
sed -n '1,3!p' datafile 不答应第1,3行
**

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式