linux中sed工具的使用

sed

sed 本身也是一个管线命令,而且 sed 还可以将数据进行取代、删除、新增、撷取特定行等等的功能。

$ sed [-nefr] [动作]
选项与参数:
-n  :使用安静(silent)模式。在一般 sed 的用法中,所有来自 STDIN 的数据一般都会被列出到屏幕上。
      但如果加上 -n 参数后,则只有经过 sed 特殊处理的那一行(或者动作)才会被列出来。
-e  :直接在命令行界面上进行 sed 的动作编辑;
-f  :直接将 sed 的动作写在一个文件内, -f filename 则可以执行 filename 内的 sed 动作;
-r  :sed 的动作支持的是延伸型正则表达式的语法。(默认是基础正则表达式语法)
-i  :直接修改读取的文件内容,而不是由屏幕输出。

动作说明:  [n1[,n2]]function
n1, n2 :不见得会存在,一般代表“选择进行动作的行数”,举例来说,如果我的动作
         是需要在 10 到 20 行之间进行的,则“ 10,20[动作行为] ”

function 有下面这些咚咚:
a   :新增, a 的后面可以接字串,而这些字串会在新的一行出现(目前的下一行)~
c   :取代, c 的后面可以接字串,这些字串可以取代 n1,n2 之间的行!
d   :删除,因为是删除啊,所以 d 后面通常不接任何咚咚;
i   :插入, i 的后面可以接字串,而这些字串会在新的一行出现(目前的上一行);
p   :打印,亦即将某个选择的数据印出。通常 p 会与参数 sed -n 一起运行~
s   :取代,可以直接进行取代的工作哩!通常这个 s 的动作可以搭配正则表达式!
      例如 1,20s/old/new/g 就是啦!
1.删除
$ nl 1.txt
     1    helloworld
     2    haa
     3    12345678
     4    !@#$%^&*(
     5    ASDwexvRSD
     6    ,./]];]{}_()^%
     7    asdasdasd
       
$ nl 1.txt| sed '2,5d'
     1    helloworld
     6    ,./]];]{}_()^%
     7    asdasdasd

2.插入

$ nl 1.txt|sed '1a weather is hot!'
     1    helloworld
weather is hot!
     2    haa
     3    12345678
     4    !@#$%^&*(
     5    ASDwexvRSD
     6    ,./]];]{}_()^%
     7    asdasdasd

3.查看第4~5行的数据

$ nl 1.txt|head -n 5|tail -n 2
     4    !@#$%^&*(
     5    ASDwexvRSD

使用sed更加简单方便

$ nl 1.txt|sed -n '4,5p'
     4    !@#$%^&*(
     5    ASDwexvRSD

4.获取ip地址

(1)使用ifconfig获取网卡信息。

(2)通过inet过滤ip信息

$ ifconfig|grep 'inet '
        inet 10.0.2.15  netmask 255.255.255.0  broadcast 10.0.2.255
        inet 192.168.56.101  netmask 255.255.255.0  broadcast 192.168.56.255
        inet 127.0.0.1  netmask 255.0.0.0

(3)替换前面的inet

$ ifconfig|grep 'inet '|sed 's/^.*inet//g'
 10.0.2.15  netmask 255.255.255.0  broadcast 10.0.2.255
 192.168.56.101  netmask 255.255.255.0  broadcast 192.168.56.255
 127.0.0.1  netmask 255.0.0.0

(4)将netmask到最后都替换掉

$ ifconfig|grep 'inet '|sed 's/^.*inet//g'|sed 's/ *netmask.*$//g'
 10.0.2.15
 192.168.56.101
 127.0.0.1
摘抄自:https://www.cnblogs.com/lzeffort/p/7237268.html

本文来自投稿,不代表Linux运维部落立场,如若转载,请注明出处:http://www.178linux.com/96501

(0)
小孜然小孜然
上一篇 2018-04-18 10:36
下一篇 2018-04-18 13:51

相关推荐

  • sed数据流编辑器

    sed(Stream Editor)行编辑器 基础用法

    2018-04-12
  • 进程管理、计划任务

    进程相关概念 进程内存: Page Frame: 页框,用存储页面数据,存储Page 4k LRU:Least Recently Used 近期最少使用算法,释放内存 物理地址空间和线性地址空间 MMU:Memory Management Unit负责转换线性和物理地址 TLB:Translation Lookaside Buffer 翻译后备缓冲器,用于保…

    Linux笔记 2018-05-07
  • 压缩,解压缩及归档工具

    压缩,解压缩及归档工具

    2018-04-26
  • 第五周 软件包管理命令、制定定时任务和sed命令介绍

    1. RPM包管理 1.1 RPM简介 RPM类似于Windows系统中.exe的软件安装程序,用户可以使用它自行安装和管理Linux上的应用程序和系统工具; RPM软件包文件都是以.rpm为后缀,一般采用这样的命名格式:软件包名称 – 版本号 – 修正版 . 硬件平台 . rpm。 1.2 RPM命令的使用方法 查询:rpm {-q…

    2018-07-02
  • N31-4

    用户管理相关命令演示

    Linux笔记 2018-07-09
  • Linux 的用户、文件管理和权限

    Linux文件系统上的特殊权限 可执行文件上SUID权限   目录上的SGID权限 sticky 特殊权限数字法: 权限位映射: 设定文件的特定属性: 访问控制列表: 访问控制列表: 访问控制列表:        

    Linux笔记 2018-04-08