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

相关推荐

  • 磁盘存储和文件系统

    磁盘存储和文件系统: 磁盘设备的文件命名:/dev/dev_file虚拟磁盘:/dev/vd磁盘标识: /dev/sda,/dev/sdb……磁盘分区:/dev/sda1,/dev/sdb2…… chs 磁盘sector 扇区 512bytestrack 磁道head 磁头cylinder柱面 使用磁盘: 分区创建文件系统:格式化挂载:分配目录名 hexdu…

    Linux笔记 2018-05-20
  • Linux基本命令——权限相关

    风决定要走,云怎么挽留

    2018-04-13
  • Linux基础知识

    Linux是什么? 想要了解linux,我们就需要先介绍一下计算机。什么是计算机?计算机的功能和组成部分? 计算机是什么呢?它是一种能接收和存储信息 ,并按照存储在其内部的程序对海量数据进行自动、高速地 处理,然后把处理结果输出的现代化智能电子设备。 它的基本功能就是接收用户输入的指令,通过CPU的数学与逻辑单元运算处理后,产生或者存储成有用的信息。 计算机…

    2018-05-10
  • 运维制动化之系统安装 实验

      步骤 0:selinux,iptables 1 安装包 2 启服务 3 修改配置文件;reload,restart 4 测试 网卡模式不要桥接: vim /etc/dhcp/dhcpd.conf option domain-name “magedu.org”; option domain-name-servers 114…

    2018-05-25
  • 变量替换 字符串处理

    变量替换非空 空 不存在 Var=${Str-Expr} Str 空 Expr Var=${Str:-Expr} Str Expr Expr 不存在至stderrVar=${Str?Expr} Str 空 Expr(stderr) Var=${Str:?Expr} Str Expr(stderr) Expr(stderr) 不存在 被赋值Var=${Str=…

    Linux笔记 2018-07-15
  • 正则表达式详细用法

    grep命令: 文本过滤(按行过滤) 参数                 -v 取反                 -i 忽略大小写                 -n 显示行号                 -c 统计匹配行数                 -q 静默执行(不显示执行结果)                 -o 仅显示搜索到的字符…

    Linux笔记 2018-04-08