linux中常用截取命令sed简介

Linux sed命令是利用script来处理文本文件。 sed可依照script的指令,来处理、编辑文本文件。
Sed主要用来自动编辑一个或多个文件;简化对文件的反复操作;编写转换程序等。

Sed可以将数据进行取代、删除、新增、选取特定行等等的功能,可以说是非常的实用。
首先,我们先man一下,看看sed有哪些选项参数。
这里写图片描述
光看是没用的,我们来实地操作一下就明了。

1、 以行为单位的新增/删除功能;

将/etc/passwd的内容列出并打印行号,同时,将2~5行删除。
这里写图片描述
如上图,2~5行消失了吧,我们此处的d就是删除的意思啦;此处要注意的是sed后面接的动作要加上单引号哦。
前面我们是删除2~5行,那么,如果只是删除某一行呢?
这里写图片描述
如上图,我们在sed的后面只加上2d就表示删除第二行了,切记要加单引号。

当我们的行数很多,并且,想删除后面的所有行,又应该怎么办呢?
这里写图片描述
看了上图的操作是不是明白了呢?$就代表最后一行,这样就可以删除后面的所有行啦。
好了,该删的也删了,是时候展现真正的技术了,哈哈!我们来一起看看新增的方法吧。
这里写图片描述
注意看上图,在第三行后面加上hello,此处的a就代表后面的意思,动作(3a)与要添加的内容之间要空格隔开,而且不能忘记单引号。
前面我们是添加一行内容,如果要添加多行呢?
这里写图片描述
当我们要添加多行时,在添加的第一行内容结束后加上\,依次类推,前面的那个单引号不动,后面的单引号要放到添加内容的最后一行的后面。
我们在修改文本时,不仅要在行后添加,还会碰到在行前添加,那又如何操作呢?
这里写图片描述
在行前添加内容只需要吧原来的a换成i即可。

2、 以行为单位的显示功能;

刚刚介绍的是增加与删除,现在我们聊聊整行显示的方法;
这里写图片描述
如上图,sed的显示是按行号的。

3、 部分数据的搜寻并取代的功能;

这里写图片描述
如上图,第一条命令取出了2~4行;第二条命令在取出内容的基础上把所有的bin替换为hello;其中的sbin也替换为了shello。(替换的动作前面是s,后面是g;三个/分隔出两个区域,前面是将要被替换的内容,后面是替换的新内容;)

现在我们用ifconfig输出的内容截取出ip,演示一次截取并替换的操作;
首先在屏幕上打印出对应的网卡信息;
这里写图片描述
grep搜索关键字,锁定有ip的行;
这里写图片描述
sed把ip前面的内容替换为空;
这里写图片描述
然后,再把ip后面的内容替换为空;
这里写图片描述

sed除了把文件内容打印出来,还可以直接在原始文件中做操作,只需要加个-i选项;如果要查看修改结果,只能自己另行操作。(此处在man_db.conf的第一行前加一行‘# this is a test’)
这里写图片描述

此文章参考‘鸟哥的私房菜’只为共享,如有侵权请告知版主并删除。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值