linux shell sed使用总结

sed是可以增删查改的命令,sed的简单使用:

-e<script文件>    以选项中的script文本来处理输入的文本文件

-f<script文件>或--file=<script文件> 以选项中指定的script文件来处理输入的文本文件。

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

-i 此选项会直接修改源文件,要慎用
 

(1)记住常用的几个关键字:
a :新增, a 的后面可以接字串,而这些字串会在新的一行出现(目前的下一行)~
c :取代, c 的后面可以接字串,这些字串可以取代 n1,n2 之间的行!
d :删除,因为是删除啊,所以 d 后面通常不接任何咚咚;
i :插入, i 的后面可以接字串,而这些字串会在新的一行出现(目前的上一行);
p :打印,亦即将某个选择的数据印出。通常 p 会与参数 sed -n 一起运行~
s :取代,可以直接进行取代的工作哩!通常这个 s 的动作可以搭配正规表示法!例如 1,20s/old/new/g 就是啦!

举例说明:

[tangtao@localhost ~]$ cat file 
123
abc
test


(1)  sed -n  2p testfile   //打印第二行,行数从1开始,第一行不计入计数

[tangtao@localhost ~]$ sed -n 2p file 
abc
[tangtao@localhost ~]$ 


(2)sed -i 2a/add_test testfile //第二行后面加入adb

[tangtao@localhost ~]$ sed -i 2a\add_test file                        
[tangtao@localhost ~]$ cat file 
123
abc
add_test
test

(3)sed -i 2d testfile //删除第二行

[tangtao@localhost ~]$ cat file 
123
add_test
test
[tangtao@localhost ~]$ sed -i 2d file
[tangtao@localhost ~]$ cat file 
123
test

 

(4) 数据的搜寻并替换:sed -i 's/old/new/g' file  

[tangtao@localhost ~]$ cat file 
123
test
[tangtao@localhost ~]$ sed -i 's/123/abc/g' file 
[tangtao@localhost ~]$ cat file 
abc
test

 

-e和 -n和-i的区别:

[tangtao@localhost ~]$ cat file            
123
abc
[tangtao@localhost ~]$ sed -n 2a\test file 
test
[tangtao@localhost ~]$ cat file            
123
abc

[tangtao@localhost ~]$ sed -e 2a\test file 
123
abc
test
[tangtao@localhost ~]$ cat file            
123
abc

[tangtao@localhost ~]$ sed -i 2a\test file                            
[tangtao@localhost ~]$ cat file                                       
123
abc
test

 

总结: 一般都是无改变用sed -n/-e ,有改变用sed -i(并且要慎用)
-n 只显示处理后的结果,-e会显示全部,但是他们都不会改写file的内容,而-i会改变文件的内容

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

陌上花开缓缓归以

你的鼓励将是我创作的最大动力,

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值