sed命令的快速入门

本文提供了一次sed命令的快速入门教程,教你如何使用sed命令在命令行中直接更改文本文件中的内容,特别适用于批量处理大量文本文件。通过sed,你可以轻松实现文本插入、删除、替换等操作,从而高效地管理和修改文件内容。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

sed(流编辑器),用来在命令行中直接更改一个文件中的内容,这个命令对于使用

shell脚本自动批量更改大量文本文件比较有用.如你当前目录中有10000个文本文件

,假设文件名从text.1到text.10000,若你希望更改这10000个文件,一种方法是使用

如vi这样的文本编辑器来逐一进行更改,而对于优秀的管理员来说它们可能会书写一个

shell脚本来使用sed批量进行更改.本文就是sed这个命令的快速入门教程.

(1).基本格式

sed [-nefri] [动作] [Input_File]

选项:

-n :表示安静模式操作,也就是只将被更改的行输出,没更改的行不输出,默认sed

是输出所有的行

-e Scrip:指定sed的执行命令可以指定多个这个选项

-f Script_File:指定执行一个包含sed命令的脚本文件

-r:支持扩展的正则表达式(默认只支持基础的正则表达式)

-i:直接操作原文件,默认是不更改原文件的,而只是将更改结果直接输出到

标准输出上,可以使用这个选项来让sed直接更改原文件

动作:

基本格式: [n1[,n2]] Function

说明:n1和n2用来指定修改的范围(从第n1行到第n2行),他们不一定必须指定

若都没指定则表示修改整个文件,若没有指定n2则表示修改的范围为从n1

到文件末尾.

注:n1,n2可以为数字,表示第N行(从1开始),当然也可以用'/Pattern/'来指定

表示使用查找来指定函数,即查找到最先包含Pattern的行为该指定的行数

Function有以下值:

(1).插入

[1].i String:表示当前行前面插入一行,内容为String

[2].a String:表示当前行后面插入一行,内容为String

(2).删除

d:表示将指定的行删除

(3).替换

[1].c String:指定整行替换为String

[2].s/Find_String/Replace/:表示用Replace替换Find_String

(4).打印

p:表示将选择的行打印出来

下面是一些实例:

假设文件example.txt的内容如下

#############################example.txt内容开始###############

line1 hello world1

line2 hello world2

line3 hello world3

#############################example.txt内容结束###############

(1).在第1行后面插入一行,内容为Insert after line1

sed -i -e '1a Insert after line1' example.txt

结果example.txt内容为:

line1 hello world1

Insert after line1

line2 hello world2

line3 hello world3

(2).在第一行前面插入一行,内容为Insert before line1

sed -i -e '1i Insert before line1' example.txt

结果:

Insert before line1

line1 hello world1

Insert after line1

line2 hello world2

line3 hello world3

(3).删除第2到第4行

sed -i -e '2,4d' example.txt

结果:

Insert before line1

line3 hello world3

(4).打印第2行

sed -e '2p' example.txt

(5).将第2行替换为line2 hello world

sed -i -e '2c line2 hello world' example.txt

结果:

Insert before line1

line2 hello world

(6).替换第二行的hello world为world hello

sed -i -e '2s/hello world/world hello/' example.txt

结果:

Insert before line1

line2 world hello

好了sed简单入门就讲到这里了,由于sed命令实在太好用了,也太强大了,因此要

熟练使用sed还必须参考完整的sed手册页或其他高手写的教材,本文只是一个简单

的入门教材而已

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值