Linux命令之sed

sed是一种非交互式的流编辑器,通过多种转换修改流经它的文本。

命令格式如下:
sed [options] 'command' file
options是sed可以接受的参数
command是sed的命令集(一共有25个)
sed默认不修改源文件,如果希望保存修改后的文件可使用重定向:sed '1d' sed.txt > saved_file
使用-i参数直接修改源文件:sed -i '1d' sed.txt
使用w命令将结果保存到外部指定文件:sed -n '1,2 w output' sed.txt

使用-e参数和分号可以连接多编辑命令
sed -e 's/this/that/g' -e 's/line/LINE/g' sed.txt
sed 's/this/that/g;s/line/LINE/g' sed.txt

使用-d命令可删除指定的行
删除第一行:sed '1d' sed.txt
删除指定范围的行(第一行到第三行):sed '1,3d' sed.txt
删除指定范围的行(第一行到最后行):sed '1,$d' sed.txt
删除最后一行:sed '$d' sed.txt
删除除指定范围以外的行(只保留第五行):sed '5!d' sed.txt
删除所有包含empty的行:sed '/empty/d' sed.txt
删除空行:sed '/^$/d' sed.txt

使用s命令进行匹配替换
每行第一个line替换:sed 's/line/LINE/' sed.txt(默认只替换第一次匹配的内容)
每行最多匹配修改2个line:sed 's/line/LINE/2' sed.txt
使用g命令完成所有匹配值替换:sed 's/line/LINE/g' sed.txt
只替换开头的this为that:sed 's/^this/that/' sed.txt

使用n命令读取匹配行的下一行
将空白行的下一行的line改成LINE:sed '/^$/{n;s/line/LINE/g}' sed.txt

使用y命令进行字符转换
将文件file中的O转换为N,L转换为E,D转换为W:sed 'y/OLD/NEW/' sed.txt
将数字1转换为A,2转换为B,3转换为C,4转换为D:sed 'y/1234/ABCD/' sed.txt
注意:转换字符和被转换字符长度要相等

使用i或a命令插入文本,i是匹配行之前插入,a是匹配行之后插入
在第二行前插入文本:sed '2 i insert' sed.txt
在第二行后插入文本:sed '2 a insert' sed.txt
在匹配行的上一行插入:sed '/second/i\insert' sed.txt

使用r命令从其他文件中读取文件,并插入匹配行之后
将/etc/passwd中的内容读取并放到sed.txt空行之后:sed '/^$/r /etc/passwd' sed.txt

使用p命令可进行打印,加-n参数表示不打印没关系的行
打印文件指定的行:sed -n '1p' sed.txt
打印实际处理过的行:sed -n 's/the/THE/p' sed.txt

sed脚本
脚本示例:将全文的this改成that,并删除所有空行
cat sed.rules
s/this/that/g
/^$/d
使用-f参数指定该脚本并应用于sed.txt
sed -f sed.rules sed.txt
sed常用命令作用
a在匹配行后加入文本
c字符转换
d删除行
D删除第一行
i在匹配行前面加入文本
h复制模板块的内容到存储空间
H追加模板块的内容到存储空间
g将存储空间的内容复制到模式空间
G将存储空间的内容追加到模式空间
n读取下一个输入行,用下一个命令处理新的行
N追加下一个输入行到模版块后并在二者间插入新行
p打印匹配的行
P打印匹配的第一行
q退出sed
r从外部文件中读取文本
w追加写文件
!匹配的逆
s/old/new用new替换正则表达式old
=打印当前行号
sed常用参数作用
-e多条件编辑
-h帮助信息
-n不输出不匹配的行
-f指定sed脚本
-V版本信息
-i直接修改源文件
### 回答1sed是一个强大的文本处理工具,常用于从标准输入或文件中读取文本,进行编辑和转换,并将输出写入标准输出或文件中。 以下是sed常用的命令选项: 1. -n:只显示经过sed编辑的行 2. -i:直接修改文件内容,不输出到终端 3. -e:允许多个命令一起执行 4. -f:从文件中读取sed命令进行处理 以下是sed常用的命令1. s:替换。语法为:s/要替换的内容/替换后的内容/g,其中g表示全局替换。 2. p:打印。将指定的行或所有行输出到终端。 3. d:删除。删除指定的行或所有行。 4. a:追加。在指定行后面添加新的内容。 5. i:插入。在指定行前面插入新的内容。 6. w:写入。将指定行写入到文件中。 举例说明: 1. 将文件中的所有"cat"替换为"dog":sed -i 's/cat/dog/g' file.txt 2. 只显示文件中包含“hello”的行:sed -n '/hello/p' file.txt 3. 删除文件中的第3行:sed -i '3d' file.txt 4. 在文件中第2行后面添加一行内容:“hello world”:sed -i '2a hello world' file.txt 5. 将文件中第1行替换为“hello”并保存到另一个文件中:sed '1s/.*/hello/' file.txt > newfile.txt ### 回答2: sed是一种常用的Linux命令,其全称为Stream Editor,用于对文本进行处理和转换。它可以在命令行中以各种方式对文件内容进行修改,包括替换、插入、删除、追加等操作。 sed的基本语法是`s/old/new/`,其中old表示待替换的字符串,new表示替换后的内容。sed命令会读取文件的内容,并对匹配到的old进行替换。如果需要对整个文件进行替换,则需要加上选项`-i`。 除了替换以外,sed还可以实现很多其他的文本操作。例如,通过`d`选项可以删除匹配到的行;通过`i`选项可以在指定行前插入文本;通过`a`选项可以在指定行后追加文本等。 另外,sed命令还可以使用正则表达式来进行模式匹配。通过在替换语句中使用正则表达式,可以对符合特定模式的字符串进行批量替换。 总之,sed是一种非常强大和灵活的文本处理工具,可以方便地对文件内容进行修改和转换,提高工作效率。熟练掌握sed命令可以帮助我们更好地处理和编辑文本文件。 ### 回答3: sed(Stream Editor)是Linux中常用的文本处理工具之一。它可以对文本进行流式编辑,具体操作包括查找、删除、替换、插入行或字符等。 使用sed命令的基本语法为: ``` sed [选项] '动作' 文件名 ``` 其中,选项可以包括: - -n:只显示或处理特定行; - -e:指定要执行的动作; - -f:从指定文件中读取动作。 动作部分可以包括: - 数字n:表示打印第n行; - p:打印匹配行; - d:删除匹配行; - s/old/new/:查找并替换文本; - a\text:在匹配行后插入文本; - i\text:在匹配行前插入文本。 以下是一些常用的sed命令示例: - 打印文件内容: ``` sed 'p' file.txt ``` - 删除匹配行: ``` sed '/pattern/d' file.txt ``` - 查找并替换文本: ``` sed 's/old/new/' file.txt ``` - 打印指定行数: ``` sed -n 'n' file.txt ``` - 在匹配行后插入文本: ``` sed '/pattern/a\text' file.txt ``` - 在匹配行前插入文本: ``` sed '/pattern/i\text' file.txt ``` 通过灵活运用sed命令,我们可以轻松地对文本文件进行各种编辑操作,提高工作效率。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值