来自公众号:盼盼编程
前言
p 命令,用来打印文件内容
(一) 打印整个文本,n 命令,仅显示 script 处理后的结果,不加 n 命令,会把待处理的信息也输出。
[root]# sed -n p test.txt
tom likes to play football
kevin likes to eat cabbage
frank likes to drink beer
cary doesn't like smoking
(二) 打印第一行到最后一行的内容。1表示第一行, $表示最后一行。
[root]# sed -n "1,$"p test.txt
tom likes to play football
kevin likes to eat cabbage
frank likes to drink beer
cary doesn't like smoking
(三) 过滤带 to 的行, 类似于 grep 命令。
[root]# sed -n "/to/"p test.txt
tom likes to play football
kevin likes to eat cabbage
frank likes to drink beer
(四) 打印匹配 kevin 开始,frank 为结束的行。
[root]# sed -n "/kevin/,/frank/"p test.txt
kevin likes to eat cabbage
frank likes to drink beer
s 命令,用于替换
(一)将 kevin 替换成 kkk。
[root]# sed "s/kevin/kkk/g" test.txt
tom likes to play football
kkk likes to eat cabbage
frank likes to drink beer
cary doesn't like smoking
(二) 只针对第二行进行判断。
[root]# sed "2s/kevin/xxx/g" test.txt
tom likes to play football
xxx likes to eat cabbage
frank likes to drink beer
cary doesn't like smoking
(三) 针对多行进行替换。
[root]# sed "1,4s/kevin/xxx/g" test.txt
tom likes to play football
xxx likes to eat cabbage
frank likes to drink beer
cary doesn't like smoking
(四) 只替换第1个 to 为 tt 。
[root]# sed "s/to/tt/1" test.txt
ttm likes to play football
kevin likes tt eat cabbage
frank likes tt drink beer
cary doesn't like smoking
(五) 只替换第 2 个 to。
[root]# sed "s/to/tt/2" test.txt
tom likes tt play football
kevin likes to eat cabbage
frank likes to drink beer
cary doesn't like smoking
(六) 开头加点东西(注释)。
[root]# sed "s/^/// /" test.txt
// tom likes to play football
// kevin likes to eat cabbage
// frank likes to drink beer
// cary doesn't like smoking
(七) 末尾加点东西。
[root]# sed "s/$/ // comment /" test.txt
tom likes to play football // comment
kevin likes to eat cabbage // comment
frank likes to drink beer // comment
cary doesn't like smoking // comment
c 命令,用于行替换
(一) 将第二行的内容替换 hehe。
[root]# sed "2 c hehe" test.txt
tom likes to play football
hehe
frank likes to drink beer
cary doesn't like smoking
(二) 仅仅替换有 tom 的行。
[root]# sed "/tom/c cat" test.txt
cat
kevin likes to eat cabbage
frank likes to drink beer
cary doesn't like smoking
i 命令, 表示行插入
(一) 在第一行前面插入。
[root]# sed "1 i love you" test.txt
love you
tom likes to play football
kevin likes to eat cabbage
frank likes to drink beer
cary doesn't like smoking
(二) 在最后一行前面插入。
[root]# sed "$ i love you" test.txt
tom likes to play football
kevin likes to eat cabbage
frank likes to drink beer
love you
cary doesn't like smoking
a 命令, 用于依附
(一) 在第一行后依附。
[root]# sed "1 i love you" test.txt
love you
tom likes to play football
kevin likes to eat cabbage
frank likes to drink beer
cary doesn't like smoking
(二) 在最后一行后依附。
[root]# sed "$ i love you" test.txt
tom likes to play football
kevin likes to eat cabbage
frank likes to drink beer
love you
cary doesn't like smoking
d 命令,删除所匹配的行
(一) 删除有kevin的行。
[root]# sed "/kevin/d" test.txt
tom likes to play football
frank likes to drink beer
cary doesn't like smoking
(二) 删除第 1 行。
[root]# sed "1d" test.txt
kevin likes to eat cabbage
frank likes to drink beer
cary doesn't like smoking
(三) 删除第 2-4 行。
[root]# sed "2,4d" test.txt
tom likes to play football
絮叨
sed命令,作为linux三剑客之一,功能非常强大。在工作和面试中,也会用到。处理问题时,可以配合awk,grep一起使用,方便多多。
希望这篇文章对大家学习sed命令有所帮助,祝大家学习愉快!
原文始发于微信公众号(Linux学习):sed命令,后台开发必知命令
免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论