Linux基础知识 ·

Linux文本三剑客之sed

[隐藏]

sed全称是:Stream EDitor,是Linux中功能十分强大的一款文本处理工具。sed本身是一个管道命令,可以分析standard input的,而且sed还可以将数据进行替换、删除、新增、选取特定行等功能!

sed 命令说明

sed 选项 动作

常用选项:

-n:静默模式,sed默认会将处理结果打印到屏幕,加此选项则只打印处理结果。

-e:直接在命令模式上进行sed的动作编辑,适用脚本内执行。

-f:可读取文件内的sed动作,可将动作写于降本内,传递给sed执行。

-r:支持扩展正则表达式,默认是支持基础正则表达式。

-i:直接修改文件内容,而非打印至屏幕。

常用动作:

n1,n2 动作 选取特定行数范围执行动作

n 动作 指定特定行执行动作

常用动作命令:

a:新增,a的后面可以接字符串,这些字符串将会在目标下一行插入。

i:插入,i的后面可以接字符串,这些字符串将会在目标上一行插入。

c:行替换,c的后面可以接字符串,这些字符串可以替换目标行。

d:删除,删除目标。

p:打印,打印处理结果,通常配合选项-n 一起运行。

s:目标替换,可搭配正则表达式,替换目标。


看起来非常简单的sed命令吧,但是灵活的应用能够非常快速的为我们处理文本文件哦。

sed 操作演示

示例1:打印/etc/passwd内容并列出行号,同时删除2~5行。

示例2:打印/etc/passwd内容并列出行号,同时在第一行前插入hello world!

示例3:打印/etc/passwd内容并列出行号,同时在第二行后增加一行hello world!和一行hello!

示例4:打印/etc/passwd内容并列出行号,同时将2~20行替换为hello world!

示例5:仅打印/etc/passwd 文件2~5行的内容并列出行号。

示例6:仅打印/etc/passwd 文件2~5行的内容,将所以行位的nologin 替换为大写NOLOGIN,并列出行号。

 

参与评论