时间长不用,总是会忘掉的。。。。。。。。还是烂笔头好些。

sed 命令使用帮助及实操举例

功能:主要用来对一个或多个文件进行编辑,简化对文件的反复操作。

语法: sed [-hnV] [-e<script>][-f<script文件>][文本文件]

参数:

  -e <script> 根据script指定的脚本来处理输入的文本文件,这个只实现了屏幕打印修改后的效果。并没有实际修改文件

  -f<script文件>:这里是指定执行 script脚本文件

  -h:帮助

  -V:显示版本

动作说明(这里是主要使用方法):

  a:在指定行号的下方新增一行字符串

  -i:在指定的行号上方新增一行字符串

  -c:取代,可以使用指定的字符串替换n1到n2之间的行

  -s:字符串匹配替换为新的内容,这个可以搭配正则表达式

  -d:删除指定的行

  -p:进行屏幕打印

实例:

这里文本文件名称为:passwd,进行举例测试

内容为:

  root:x:0:0:root:/root:/bin/bash
  bin:x:1:1:bin:/bin:/sbin/nologin
  lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
  sync:x:5:0:sync:/sbin:/bin/sync

注意:我这里使用,-p 参数进行屏幕打印,如果是要直接修改文件内容,使用 -i 参数,打印文档行号使用: nl

新增举例:

  在第二行后增加一行,执行:nl passwd | sed -e '2a testcontent'

1 root:x:0:0:root:/root:/bin/bash
2 bin:x:1:1:bin:/bin:/sbin/nologin
testcontent
3 lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
4 sync:x:5:0:sync:/sbin:/bin/sync

删除举例:

  删除第三行,执行:nl passwd | sed -e '3d'

1 root:x:0:0:root:/root:/bin/bash
2 bin:x:1:1:bin:/bin:/sbin/nologin
4 sync:x:5:0:sync:/sbin:/bin/sync

  删除3,4行,执行:nl passwd | sed -e '3,4d'

1 root:x:0:0:root:/root:/bin/bash
2 bin:x:1:1:bin:/bin:/sbin/nologin

  删除第3行到最后一行,执行:nl passwd | sed -e '3,$d'

效果同上

  搜索root并删除此行,执行:nl passwd | sed  '/root/d'

2 bin:x:1:1:bin:/bin:/sbin/nologin
3 lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
4 sync:x:5:0:sync:/sbin:/bin/sync

插入举例:

  在第二行上方插入一行,执行:nl passwd | sed -e '2i testfile'

1 root:x:0:0:root:/root:/bin/bash
testfile
2 bin:x:1:1:bin:/bin:/sbin/nologin
3 lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
4 sync:x:5:0:sync:/sbin:/bin/sync

  在第二行后增加2行,执行:nl passwd | sed -e "2a first line ....\n second line ...."   注意:这里使用 \n做了回车

1 root:x:0:0:root:/root:/bin/bash
2 bin:x:1:1:bin:/bin:/sbin/nologin
first line ....
second line ....
3 lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
4 sync:x:5:0:sync:/sbin:/bin/sync

取代举例

  将第二行取代为新增字符串,执行:nl passwd | sed -e '2c testfile'

1 root:x:0:0:root:/root:/bin/bash
testfile
3 lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
4 sync:x:5:0:sync:/sbin:/bin/sync

  将第2行到第4行取代为新的字符串,执行:nl passwd | sed -e '2,4c testfile'

1 root:x:0:0:root:/root:/bin/bash
testfile

显示指定行举例

  显示第3行,执行:nl passwd | sed -n '3p'

3  lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin

  显示第3行到第4行,执行:nl passwd | sed -n '3,4p'

3 lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
4 sync:x:5:0:sync:/sbin:/bin/sync

  搜索并显示具有root关键字的行,执行:nl passwd | sed -n '/root/p'

1  root:x:0:0:root:/root:/bin/bash

替换举例:

  替换所有的nologin为bash,执行:nl passwd | sed 's/nologin/bash/g'

1 root:x:0:0:root:/root:/bin/bash
2 bin:x:1:1:bin:/bin:/sbin/bash
3 lp:x:4:7:lp:/var/spool/lpd:/sbin/bash
4 sync:x:5:0:sync:/sbin:/bin/sync

  搜索root行并替换bash为shellbash,执行:nl passwd | sed -n '/root/{s/bash/shellbash/;p;q}'   这里的q为退出

1  root:x:0:0:root:/root:/bin/shellbash

  替换所有的nologin为bash,执行:nl passwd | sed -e 's/nologin/bash/g'

1 root:x:0:0:root:/root:/bin/bash
2 bin:x:1:1:bin:/bin:/sbin/bash
3 lp:x:4:7:lp:/var/spool/lpd:/sbin/bash
4 sync:x:5:0:sync:/sbin:/bin/sync

综合举例1:提取网卡ip

ifconfig eth2 | grep 'inet addr' | sed  's/^.*addr://'| sed 's/Bcast:.*//'

输出:192.168.10.150

第二种写法:ifconfig eth2 | sed -n '2p' | sed  's/^.*addr://'| sed 's/Bcast:.*//'

综合举例2:多点编辑

  删除第3行到最后一行,且替换bash为shellbash,执行:nl passwd |sed -e '3,$d' -e 's/bash/shellbash/'

1 root:x:0:0:root:/root:/bin/shellbash
2 bin:x:1:1:bin:/bin:/sbin/nologin

shell - sed 简单使用记录的更多相关文章

  1. Python3学习之路~2.8 文件操作实现简单的shell sed替换功能

    程序:实现简单的shell sed替换功能 #实现简单的shell sed替换功能,保存为file_sed.py #打开命令行输入python file_sed.py 我 Alex,回车后会把文件中的 ...

  2. 3-1 实现简单的shell sed替换功能

    1.需求 程序1: 实现简单的shell sed替换功能 file1 的内容copy到file2 输入参数./sed.py  $1  $2 $1替换成$2 (把a替换成% ) 2.个人思路 open ...

  3. 4.实现简单的shell sed替换功能

    # -*- coding:utf-8 -*- # Author: JACK ZHAO # 程序1: 实现简单的shell sed替换功能 import sys #判断参数个数 if len(sys.a ...

  4. centos shell脚本编程1 正则 shell脚本结构 read命令 date命令的用法 shell中的逻辑判断 if 判断文件、目录属性 shell数组简单用法 $( ) 和${ } 和$(( )) 与 sh -n sh -x sh -v 第三十五节课

    centos   shell脚本编程1 正则  shell脚本结构  read命令  date命令的用法  shell中的逻辑判断  if 判断文件.目录属性  shell数组简单用法 $( ) 和$ ...

  5. 如果简单的记录,就可以为这个世界创造更多的财富,那么还有什么理由不去写博客呢? — 读<<黑客与画家>> 有感

    上一次博文发文时间是2016.1.15,7个月已经过去了.最近读了一本<>的书,对我触动挺大的!里面有关于技术趋势的探讨,也有关于人生和财富的思考! 开始更新iOS122的文章的初衷是,聚 ...

  6. Python简单爬虫记录

    为了避免自己忘了Python的爬虫相关知识和流程,下面简单的记录一下爬虫的基本要求和编程问题!! 简单了解了一下,爬虫的方法很多,我简单的使用了已经做好的库requests来获取网页信息和Beauti ...

  7. redis5.0.3单实例简单安装记录

    redis5.0.3单实例简单安装记录 日常需要测试使用,索性记录下来,免得临时又麻烦的找资料. yum -y install make gcc-c++ cmake bison-devel ncurs ...

  8. Oracle触发器简单入门记录

    写在前面: 最近,老项目新增了日报优化的需求,丽姐让我用触发器去实现当数据插入或者更新的时候,实现对日报表数据更新操作.嗯嗯嗯呢,之前学习数据库的时候,有碰到过触发器,但都是一跳而过,也没怎么去真正的 ...

  9. 27:简单错误记录SimpleErrorLog

    题目描述 开发一个简单错误记录功能小模块,能够记录出错的代码所在的文件名称和行号. 处理: 1. 记录最多8条错误记录,循环记录,对相同的错误记录(净文件名称和行号完全匹配)只记录一条,错误计数增加: ...

随机推荐

  1. ultraedit编辑器破解版下载

    ultraedit一款功能丰富的网站建设软件,需要的朋友可以看看. 百度百科:UltraEdit 是一套功能强大的文本编辑器,可以编辑文本.十六进制.ASCII 码,完全可以取代记事本(如果电脑配置足 ...

  2. 按键精灵安卓版 tap、touch命令 不好用的解决办法!

    用按键精灵手机版写脚本来操作新浪微博APP,在关注列表页自动取消关注,代码如下: If x > -1 And y > -1 Then delay 1000 tap x,y delay 10 ...

  3. Python学习笔记:输入输出,注释,运算符,变量,数字类型,序列,条件和循环控制,函数,迭代器与生成器,异常处理

    输入输出 输入函数input()和raw_input() 在Python3.x中只有input()作为输入函数,会将输入内容自动转换str类型: 在Python2.x中有input()和raw_inp ...

  4. hashable与unhashable

    不可哈希(unhashable):就是指其可变,如列表.字典等,都能原地进行修改. 可哈希(hashable):不可变,如字符串.元组那样,不能原地修改. 利用set()和{}建立集合时,要求集合中的 ...

  5. Cheese Aizu - 0558 (搜索题)

    Time limit8000 ms Memory limit131072 kB チーズ () 問題 今年も JOI 町のチーズ工場がチーズの生産を始め,ねずみが巣から顔を出した.JOI 町は東西南北に ...

  6. 树状数组:CDOJ1583-曜酱的心意(树状数组心得)

    曜酱的心意 Time Limit: 3000/1000MS (Java/Others) Memory Limit: 131072/131072KB (Java/Others) Description ...

  7. poj 1979 走多少个‘ . '问题 dfs算法

    题意:给你一个迷宫地图,让你走.问最多可以走多少个“." 思路:dfs 找到起点,然后对起点进行dfs操作. dfs操作时,要把当前的位置标志成"#"表示已经走过,然后进 ...

  8. 菜单及CMenu类的使用

    CMenu类的主要成员函数 BOOL LoadMenu(UINT nIDResource); 加载菜单资源,并将其附加到CMenu对象上.参数nIDResource指定了要加载的菜单资源的ID.如果菜 ...

  9. 迷宫问题&MakeFile

    先看一个有意思的问题, 我们定义一个二维数组表示迷宫. 它表示一个迷宫, 其中的1表示墙壁,0表示可以走的路, 只能横着走或竖着走,不能斜着走, 我们要编程序找出从左上角到右下角的路线.其实这个问题可 ...

  10. Django one

    WEB-Django: Http协议: http协议:超文本传输协议,基于TCP/IP通信协议来传递数据 特点: 1.灵活:允许传输任意类型的数据对象.正在传输的类型有Content-Type标记 2 ...