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
下一篇 2018-04-18

相关推荐

  • nmcli team 网桥

    nmcli connection 命令行更改ip地址 nmcli connection add con-name home-eth3 ifname eth1 type ethernet ipv4.method auto connection.autoconnect yes 表示在 eth1网卡身上 上添加 名为home-eth3 自动获取且下回自动开启的 E…

    Linux笔记 2018-05-06
  • centos6启动流程

    这是第四次

    2018-05-13
  • 学习liunx 系统笔记

    服务器按应用功能可分为:web 服务器   数据库服务器   文件服务器  中间件应用服务器  日子服务器   监控服务器   程序版本控制服务器  虚拟机服务器     邮件服务器   打印服务器   域控制服务器  多媒体服务器  通讯服务器    ERP 服务器等! 服务器按外形可分为:塔式服务器   、机架式服务器  、刀片式服务器。  

    Linux笔记 2018-04-01
  • cobbler自动化安装

    实验:实现cobbler安装 1 安装包 yum install cobbler(EPEL) dhcp httpd tftp systemctl enable cobblerd dhcpd httpd tftp systemctl start cobblerd httpd tftp 2 cobbler check 3 vim /etc/cobbler/set…

    Linux笔记 2018-05-27
  • N31-第二周作业—文件的管理

    1、Linux上的文件管理类命令都有哪些,其常用的使用方法及其相关示例演示。
    2、bash的工作特性之命令执行状态返回值和命令行展开所涉及的内容及其示例演示。
    3、请使用命令行展开功能来完成以下练习:
    (1)、创建/tmp目录下的:a_c, a_d, b_c, b_d
    (2)、创建/tmp/mylinux目录下的:
    mylinux/
    ├── bin
    ├── boot
    │   └── grub
    ├── dev
    ├── etc
    │   ├── rc.d
    │   │   └── init.d
    │   └── sysconfig
    │   └── network-scripts
    ├── lib
    │   └── modules
    ├── lib64
    ├── proc
    ├── sbin
    ├── sys
    ├── tmp
    ├── usr
    │   └── local
    │   ├── bin
    │   └── sbin
    └── var
    ├── lock
    ├── log
    └── run
    4、文件的元数据信息有哪些,分别表示什么含义,如何查看?如何修改文件的时间戳信息。
    5、如何定义一个命令的别名,如何在命令中引用另一个命令的执行结果?
    6、显示/var目录下所有以l开头,以一个小写字母结尾,且中间至少出现一位数字(可以有其它字符)的文件或目录。
    7、显示/etc目录下,以任意一个数字开头,且以非数字结尾的文件或目录。
    8、显示/etc目录下,以非字母开头,后面跟了一个字母以及其它任意长度任意字符的文件或目录。
    9、在/tmp目录下创建以tfile开头,后跟当前日期和时间的文件,文件名形如:tfile-2016-05-27-09-32-22。
    10、复制/etc目录下所有以p开头,以非数字结尾的文件或目录到/tmp/mytest1目录中。
    11、复制/etc目录下所有以.d结尾的文件或目录至/tmp/mytest2目录中。
    12、复制/etc/目录下所有以l或m或n开头,以.conf结尾的文件至/tmp/mytest3目录中。

    2018-07-05
  • YUM安装的MySQL(MariaDB)实现多实例运行

    生产环境中,可能需要多个数据库同时在线。但一台服务器只运行一个数据库实例势必会引起资源的浪费,因此,本文介绍如何将yum安装的MySQL多开,实现多实例运行。(二进制与编译安装步骤与此类似)

    Linux笔记 2018-06-12