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’)
这里写图片描述

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

发布了20 篇原创文章 · 获赞 27 · 访问量 5万+
展开阅读全文

没有更多推荐了,返回首页

©️2019 CSDN 皮肤主题: 大白 设计师: CSDN官方博客

分享到微信朋友圈

×

扫一扫,手机浏览