shell - sed 简单使用记录
时间长不用,总是会忘掉的。。。。。。。。还是烂笔头好些。
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 简单使用记录的更多相关文章
- Python3学习之路~2.8 文件操作实现简单的shell sed替换功能
程序:实现简单的shell sed替换功能 #实现简单的shell sed替换功能,保存为file_sed.py #打开命令行输入python file_sed.py 我 Alex,回车后会把文件中的 ...
- 3-1 实现简单的shell sed替换功能
1.需求 程序1: 实现简单的shell sed替换功能 file1 的内容copy到file2 输入参数./sed.py $1 $2 $1替换成$2 (把a替换成% ) 2.个人思路 open ...
- 4.实现简单的shell sed替换功能
# -*- coding:utf-8 -*- # Author: JACK ZHAO # 程序1: 实现简单的shell sed替换功能 import sys #判断参数个数 if len(sys.a ...
- centos shell脚本编程1 正则 shell脚本结构 read命令 date命令的用法 shell中的逻辑判断 if 判断文件、目录属性 shell数组简单用法 $( ) 和${ } 和$(( )) 与 sh -n sh -x sh -v 第三十五节课
centos shell脚本编程1 正则 shell脚本结构 read命令 date命令的用法 shell中的逻辑判断 if 判断文件.目录属性 shell数组简单用法 $( ) 和$ ...
- 如果简单的记录,就可以为这个世界创造更多的财富,那么还有什么理由不去写博客呢? — 读<<黑客与画家>> 有感
上一次博文发文时间是2016.1.15,7个月已经过去了.最近读了一本<>的书,对我触动挺大的!里面有关于技术趋势的探讨,也有关于人生和财富的思考! 开始更新iOS122的文章的初衷是,聚 ...
- Python简单爬虫记录
为了避免自己忘了Python的爬虫相关知识和流程,下面简单的记录一下爬虫的基本要求和编程问题!! 简单了解了一下,爬虫的方法很多,我简单的使用了已经做好的库requests来获取网页信息和Beauti ...
- redis5.0.3单实例简单安装记录
redis5.0.3单实例简单安装记录 日常需要测试使用,索性记录下来,免得临时又麻烦的找资料. yum -y install make gcc-c++ cmake bison-devel ncurs ...
- Oracle触发器简单入门记录
写在前面: 最近,老项目新增了日报优化的需求,丽姐让我用触发器去实现当数据插入或者更新的时候,实现对日报表数据更新操作.嗯嗯嗯呢,之前学习数据库的时候,有碰到过触发器,但都是一跳而过,也没怎么去真正的 ...
- 27:简单错误记录SimpleErrorLog
题目描述 开发一个简单错误记录功能小模块,能够记录出错的代码所在的文件名称和行号. 处理: 1. 记录最多8条错误记录,循环记录,对相同的错误记录(净文件名称和行号完全匹配)只记录一条,错误计数增加: ...
随机推荐
- 如何用纯 CSS 创作一个极品飞车 loader
效果预览 在线演示 按下右侧的"点击预览"按钮可以在当前页面预览,点击链接可以全屏预览. https://codepen.io/comehope/pen/MBbEMo 可交互视频 ...
- 第7课 Thinkphp 5 模板输出变量使用函数 Thinkphp5商城第四季
目录 1. 手册地址: 2. 如果前面输出的变量在后面定义的函数的第一个参数,则可以直接使用 3. 还可以支持多个函数过滤,多个函数之间用"|"分割即可,例如: 4. 变量输出使用 ...
- dict 方法总结整理
#!/usr/bin/env python __author__ = "lrtao2010" #Python 3.7.0 字典常用方法 #字典的key是唯一的,且不能被修改,val ...
- 纯虚函数(pure virtual function )和抽象类(abstract base class)
函数体=0的虚函数称为“纯虚函数”.包含纯虚函数的类称为“抽象类” #include <string> class Animal // This Animal is an abstract ...
- Python虚拟机中的一般表达式(一)
在Python虚拟机框架这一章中,我们通过PyEval_EvalFrameEx看到了Python虚拟机的整体框架.而这章开始,我们将了解Python虚拟机是如何完成对Python的一般表达式的执行,这 ...
- PYday16&17-设计模式\选课系统习题
1.设计模式:对程序做整体得规划设计,这样做是为了更好的实现功能,使代码的可扩展性更好有27种常见的设计模式.流行的设计模式参考书:GoF设计模式.大话设计模式设计模式是为了更好的实现模块间的解耦,便 ...
- python + selenium - selenium简介
1. 产品简介 selenium 是 基于 web网页的UI自动化测试框架. 1)支持多浏览器操作:ie.chrome.firefox.edge.safaria等 2)跨平台:windows.linu ...
- pytion3--class一个更实际的例子
class一个更实际的例子 到目前为止,我们所看的大多数例子都是人为创造而且是独立完备的,其目的是为了帮助你把注意力集中在基础知识上.然而,本章的结尾是一个较大的例子,把我们所学的大多数概念都聚合在这 ...
- Sogou日志分析(hive)
1. 数据准备 1.1 数据预先放在mac本地桌面的“VB共享文件夹”中,从VisualBox虚拟机中/mnt/VBShare共享目录中转移到resources目标目录. [cloudera@quic ...
- Ajax、Comet、Websocket、SSE
从 http 协议说起 1996年IETF HTTP工作组发布了HTTP协议的1.0版本 ,到现在普遍使用的版本1.1,HTTP协议经历了17 年的发展.这种分布式.无状态.基于TCP的请求/响应式 ...