sed:Stream Editor文本流编辑,sed是一个“非交互式的”面向字符流的编辑器。能同时处理多个文件多行的内容,可以不对原文件改动,把整个文件输入到屏幕,可以把只匹配到模式的内容输入到屏幕上。还可以对原文件改动,但是不会再屏幕上返回结果。

sed命令的选项(option):

-n :只打印模式匹配的行

-e :直接在命令行模式上进行sed动作编辑,此为默认选项

-f :将sed的动作写在一个文件内,用–f filename 执行filename内的sed动作

-r :支持扩展表达式

-i :直接修改文件内容

sed -i '/DEVICE/c\Ethernet' test

#匹配DEVICE的行,替换成Ethernet这行

c\ 把选定的行改为新的文本
[root@kbase ~]# cat test
lp:x:::lp:/var/spool/lpd:/sbin/nologin
DEVICE="eth0"
BOOTPROTO="static"
[root@kbase ~]# sed -i '/DEVICE/c\Ethernet' test
[root@kbase ~]# cat test
lp:x:::lp:/var/spool/lpd:/sbin/nologin
Ethernet
BOOTPROTO="static"
sed -i 's/static/dhcp/' test

把static替换成dhcp(/,@,# 地址定界符)

s 替换指定字符
[root@kbase ~]# cat test 
BOOTPROTO="static"  
HWADDR="00:0C:29:90:79:78"  
ONBOOT="yes" [root@kbase ~]# sed -i 's/static/dhcp/' test
[root@kbase ~]# cat test
BOOTPROTO="dhcp"  
HWADDR="00:0C:29:90:79:78"  
ONBOOT="yes"

sed -i 's/BOOTPROTO/#BOOTPROTO/' test
匹配BOOTPROTO替换成#BOOTPROTO,在配置文件中一般用于注释某行
[root@kbase ~]# cat test
BOOTPROTO="dhcp"
HWADDR="00:0C:29:90:79:78"
ONBOOT="yes" [root@kbase ~]# sed -i 's/BOOTPROTO/#BOOTPROTO/' test
[root@kbase ~]# cat test
#BOOTPROTO="dhcp"
HWADDR="00:0C:29:90:79:78"
ONBOOT="yes"

sed -i 's/ONBOOT/#&/' test
& 已匹配字符串标记

匹配ONBOOT的行的前面添加#号,在配置文件中也表示注释某行
[root@kbase ~]# cat test
#BOOTPROTO="dhcp"
HWADDR="00:0C:29:90:79:78"
ONBOOT="yes" [root@kbase ~]# sed -i 's/ONBOOT/#&/' test
[root@kbase ~]# cat test
#BOOTPROTO="dhcp"
HWADDR="00:0C:29:90:79:78"
#ONBOOT="yes"
sed -i '/ONBOOT/s/#//' test
匹配ONBOOT的行,把#替换成空,即去掉#号,也一般用作去掉#注释
[root@kbase ~]# cat test
#BOOTPROTO="dhcp"
HWADDR="00:0C:29:90:79:78"
#ONBOOT="yes" [root@kbase ~]# sed -i '/ONBOOT/s/#//' test
[root@kbase ~]# cat test
#BOOTPROTO="dhcp"
HWADDR="00:0C:29:90:79:78"
ONBOOT="yes"

参考:

sed命令详解

http://man.linuxde.net/sed

sed 案例的更多相关文章

  1. 四剑客(sed)

    一. sed sed简介: 用Linux环境中的编辑器程序来编辑文本文件.这些编辑器可以让你用简单命令或鼠标单击来轻松地处理文本文件中的文本.但有时候,你会发现需要自动处理文本文件,可你又不想动用全副 ...

  2. Linux三剑客sed

    注意sed和awk使用单引号,双引号有特殊解释 sed是Stream Editor(字符流编辑器)的缩写,简称流编辑器. sed是操作.过滤和转换文本内容的强大工具. 常用功能包括结合正则表达式对文件 ...

  3. 强大的grep,sed和awk--用案例来讲解

    准备工作: 先简单了解grep,sed和awk功能 1) grep 显示匹配特定模式的内容 grep -v 'boy' test.txt 过滤掉test.txt文件的boy,显示其余内容 grep ' ...

  4. sed命令实现文件内容替换总结案例

    sed -i "s@AAAAA@BBBBB@g" /home/local/payment-biz-service/env/test.txt sed -i "s#htxk. ...

  5. awk 和 sed 使用案例

    1.模仿wc的行为,统计一个文本文件的文件的字符数.行数.单词数. awk '{numOfChar+=length($0);numOfWord+=NF}END{print numOfChar" ...

  6. sed线上经典案例之-同时替换多个字符串

    回答网友请教的一个问题:配置文件如下:[aaa]cfg1=aaaxxxx=bbbcfg2=ccccfg3=ddd[bbb]cfg1=eeeyyyy=fffcfg2=gggcfg3=hhhcfg4=ii ...

  7. awk,sed文本处理案例

    #!/bin/bash ############################################################################# #针对一个多级目录下 ...

  8. sed 实践案例 (不定期更新)

    删除每行第一个字符 sed -r 's/^.//g' /etc/passwd 删掉每行第二个字符 sed -r 's/^(.)(.)/\1/g' /etc/passwd 删掉每行最后一个字符 sed ...

  9. NO8 find结合sed查找替换企业案例多方法精讲&命令总结!

    ·sed    #替换  eg: sed 'sed 's#已有的内容#更改的内容#g' oldboy.txt                   s 代表替换,g代表全局,sg就是全局替换       ...

随机推荐

  1. 怎样使用Intent传递对象

    怎样使用Intent传递对象 我们能够使用Intent来启动Activity.开启服务Service,发送广播Broadcast,然后使用Intent传递主要的数据类型,如:布尔值,整型,字符串等 I ...

  2. MySQL设置密码的三种方法

    其设置密码有三种方法: a. ./mysqladmin -u root -p oldpassword newpasswd(记住这个命令是在/usr/local/mysql/bin中外部命令) b. S ...

  3. 每一行最后添加文字python脚本

    比较简单的在pycharm上跑的脚本 #_*_coding:utf-8_*_ #普通版 file = open("oldfile.txt","r",newlin ...

  4. IOS And WCF 上传文件

    IOS And WCF Story 研究IOS上传到WCF图片的小功能,WCF实现服务端的文件上传的例子很多,单独实现IOS发送图片的例子也很多,但是两个结合起来的就很少了. 可以通过base64来上 ...

  5. 品友推广的投放原理 RTB:Real Time Bidding(实时竞价) DSP:Demand-Side Platform(需求方平台) 广告交易平台:AD Exchange

    总结: 1.实时竞价 0.1秒出价各个广告主出价,投放价高者: RTB(Real Time Bidding)实时竞价,是一种利用第三方技术在数以百万计的网站或移动端针对每一个用户展示行为进行评估以及出 ...

  6. Java栈(Stack)和堆(Heap)

    In the following code public void Method1() { int i = 4; int y = 2; class1 cls1 = new class1(); } He ...

  7. IIS网站部署解决报错

    入坑2次,这次还是得马上总结起来== 部署网站报以上错 检查方法 步骤一:检查部署的网站路径是否正确 步骤二: 检查Internet信息管理器中,应用程序池的.net Framework版本,选择v4 ...

  8. 洛谷 P2216 [HAOI2007]理想正方形

    洛谷 巨说这是一道单调队列好题,但是我并不是用单调队列做的诶. 如果往最暴力的方向去想,肯定是\(n^3\)的\(dp\)了. \(f[i][j][k]\)代表当前正方形的左上角定点是\((i,j)\ ...

  9. java中byte[] 和16进制字符串互转

    //将byte[]转换为16进制字符串 public static String byte2hex(byte[] b) { StringBuilder hs = new StringBuilder() ...

  10. python线程池/进程池创建

    进程池 import time from concurrent.futures import ProcessPoolExecutor def task(arg): time.sleep(2) prin ...