为什么80%的码农都做不了架构师?>>>   

grep 工具的功能其实还不够强大,其实说白了,grep实现的只是查找功能,而它却不
能实现把查找的内容替换掉。以前用vim的时候,可以查找也可以替换,但是只局限于在文
本内部来操作,而不能输出到屏幕上。sed工具以及下面要讲的awk工具就能实现把替换的
文本输出到屏幕上的功能了,而且还有其他更丰富的功能。sed和awk都是流式编辑器,是
针对文档的行来操作的。
a.打印某行 sed-n‘n’pfilename 单引号内的n是一个数字,表示第几行

b.打印多行打印整个文档用-n‘1,$’p

c. 打印包含某个字符串的行

上面grep中使用的特殊字符,如’^’,‘$’,‘.’,‘*’等同样也能在sed中使用。

d.-e 可以实现多个行为

e.删除某行或者多行

‘d’ 这个字符就是删除的动作了,不仅可以删除指定的单行以及多行,而且还可以删除匹配
某个字符的行,另外还可以删除从某一行一直到文档末行。

f. 替换字符或字符串

上例中的’s’就是替换的命令,’g’为本行中全局替换,如果不加’g’,只换该行中出现的第一个。
除了可以使用’/’外,还可以使用其他特殊字符例如’#’或者’@’都没有问题。

现在思考一下,如何删除文档中的所有数字或者字母?

有意思吧,[0-9]表示任意的数字。这里你也可以写成[a-zA-Z]甚至[0-9a-zA-Z]

g.调换两个字符串的位置

这个就需要解释一下了,上例中用’()’把所想要替换的字符括起来成为一个整体,因为括号
在sed中属于特殊符号,所以需要在前面加脱意字符’\’,替换时则写成’\1’,‘\2’,‘\3’ 的形式。
除了调换两个字符串的位置外,笔者还常常用到在某一行前或者后增加指定内容。

h.直接修改文件的内容
sed-i‘s/:/#/g’ test.txt ,这样就可以直接更改test.txt文件中的内容了。由于这个命令可以
直接把文件修改,所以在修改前最好先复制一下文件以免改错。
sed常用到的也就上面这些了,只要你多加练习就能熟悉它了。为了能让你更加牢固的
掌握sed的应用,笔者留几个练习题给你,希望你能认真完成。
1.把/etc/passwd 复制到/root/test.txt,用sed打印所有行;
2.打印test.txt的3到10行;
3.打印test.txt 中包含’root’的行;
4.删除test.txt 的15行以及以后所有行;
5.删除test.txt中包含’bash’的行;
6.替换test.txt 中’root’为’toor’;
7.替换test.txt中’/sbin/nologin’为’/bin/login

8.删除test.txt中5到10行中所有的数字;
9.删除test.txt 中所有特殊字符(除了数字以及大小写字母);
10.把test.txt中第一个单词和最后一个单词调换位置;
11.把test.txt中出现的第一个数字和最后一个单词替换位置;
12.把test.txt 中第一个数字移动到行末尾;
13.在test.txt 20行到末行最前面加’aaa:’;
现在给出以上练习题的答案,你如果实在想不出如何操作,那你看看答案吧,请尽量多想一
下。
1. /bin/cp/etc/passwd /root/test.txt; sed-n'1,$'p test.txt
2. sed-n'3,10'p test.txt
3. sed-n'/root/'p test.txt
4. sed'15,$'d test.txt
5. sed'/bash/'d test.txt
6. sed's/root/toor/g'test.txt
7. sed's#sbin/nologin#bin/login#g' test.txt
8. sed'5,10s/[0-9]//g'test.txt
9. sed's/[^0-9a-zA-Z]//g'test.txt
10. sed's/\(^[a-zA-Z][a-zA-Z]*\)\([^a-zA-Z].*\)\([^a-zA-Z]\)\([a-zA-Z][a-zA-Z]*$\)/\4\2\3\1/'
test.txt
11. sed
's#\([^0-9][^0-9]*\)\([0-9][0-9]*\)\([^0-9].*\)\([^a-zA-Z]\)\([a-zA-Z][a-zA-Z]*$\)#\1\5\3\4\2#'
test.txt

12. sed's#\([^0-9][^0-9]*\)\([0-9][0-9]*\)\([^0-9].*$\)#\1\3\2#' test.txt
13. sed's/^.*$/&aaa/'test.txt

转载于:https://my.oschina.net/jiaozg/blog/93449

【sed 工具的使用】相关推荐

  1. linux运维实战练习及linux shell脚本、awk、sed工具命令学习总结

    一.linux shell 脚本 1.描述shell程序的运行原理(可附带必要的图形说明): Linux系统的shell作为操纵系统的外壳,为用户提供使用操纵系统的接口.它是命令语言.命令解释程序及程 ...

  2. Linux之Sed工具的使用详解

    Sed工具工作原理及特性 1. sed是流编辑器,每一次读取一行到内存中,即称之为模式空间(pattern space) 2. 默认不修改原文件,如果需要修改需加-i参数 3. sed有模式空间及保持 ...

  3. linux中sed工具的简单解析与实例参考

    一.什么是sed sed是一种新型的,非交互式的编辑器.它没有提供交互式的使用方式,使用者只能在命令行输入编辑命令,指定文件名,然后在屏幕上查看输出.sed编辑器没有破坏习惯,它不会修改文件,除非使用 ...

  4. grep 判断不是正则的_Shell—正则表达式(grep命令、sed工具)

    前言 正则表达式对于系统管理员来说是非常重要的,熟练运用正则表达式可使工作变得更加简单.方便. 一.正则表达式概述 正则表达式定义 正则表达式,又称正规表达式.常规表达式 使用字符串来描述.匹配一系列 ...

  5. Shell编程之sed工具

    文章目录 sed工具概述 sed工作原理 sed工作 sed命令格式 sed 命令常见用法 sed命令的格式 sed命令的常用选项 编辑命令格式 sed的常用操作命令 常见的操作包括以下几种. sed ...

  6. shell 知识点补充(3)-修改语系/特殊字符/ printf/sed 工具/awk 工具/diff/cmp

    1.修改语系的方法为: [root@test root]# LANG=en              (根据情况指定为其它语法,如:C) [root@test root]# export LANG l ...

  7. linux sed不起作用,Linux:sed工具

    1.什么是sed工具 sed意为流编辑器(Stream Editor),在Shell脚本和Makefile中作为过滤器使用非常普遍,也 就是 把前一个程序的输出引入sed的输入,经过一系列编辑命令转换 ...

  8. linux sed工具,玩转Linux - 神级工具 sed awk

    简介 本文主要介绍 Linux 系统的两个神级工具:sed 和 awk ,他们是Linux高手们必备的技能,很值得我们去研究的东西. 这里是我在网上书上收集的相关资料,因为这两个工具很有名也很重要,所 ...

  9. Linux sed工具

    sed 是文本处理工具,读取文本内容,根据指定的条件进行处理,如删除.替换.添加等:可在无交互的情况下实现相当复杂的文本处理操作 工作原理:读取

  10. 文本处理器—sed工具

    sed概述 sed(Stream EDitor)是一个强大而简单的文本解析转换工具,可以读取文本,并根据指定的条件对文本内容进行编辑(删除.替换.添加.移动等),最后输出所有行或者仅输出处理的某些行. ...

最新文章

  1. 低代码、无代码?深度解读硅谷新趋势(上)
  2. 明明安装了模块,还是出现 错误 ImportError: No module named ‘pandas‘ 原因LINUX上安装了多个python环境,将脚本中python 改为python3问题解
  3. 按一行一行的方法将一个文本文件复制到另一个文件中_大文件上的结构化数据计算示例...
  4. 得力助手 消防员的 消防机器人_消防机器人:消防员的“得力助手”(科技大观)...
  5. Spring Security使用
  6. centos 6.5 x64编译有python的vim7.4
  7. Facebook授权登录
  8. 基于JAVA+Servlet+JSP+MYSQL的高校后勤管理系统
  9. java.lang.ClassNotFoundException: org.apache.commons.codec.DecoderException
  10. JS实现类似QQ好友头像hover时显示资料卡的效果
  11. vue项目px自动转rem适用于pc端
  12. 使用aria2批量下载微博相册
  13. c# forbidden.html,403 Forbidden错误的浏览器行为
  14. 【VBA】Excel拆分表格,并且复制格式
  15. 发改委印发三年行动计划 智能机器人有望成为下一片蓝海
  16. 去掉Holo主题下Dialog的蓝色线
  17. 项目总结-网络舆情分析
  18. 我在b站学数据库 (七):多表操作
  19. java-经纬度有关的计算(半径内的经纬度范围和两点间距离)
  20. fio使用good blog

热门文章

  1. Silverlight初级教程-概述
  2. 用 BAT 注册 Subversion 服务
  3. NGINX实现负载均衡,并利用PHP实现session入库
  4. mysql+centos7+主从复制
  5. 11.22 访问日志不记录静态文件 11.23 访问日志切割 11.24 静态元素过期时间
  6. SDL如何嵌入到QT中?!
  7. mysql导出成execl
  8. JSTL fmt 标签 使用
  9. 化学堵水剂处理油井出水问题
  10. CSS布局:让页脚始终保持底部的方法