[root@lanny test]# cat test.txt
test
liyao
lanny

经典博文:

http://oldboy.blog.51cto.com/2561410/949365

http://blog.csdn.net/hello_hwc/article/details/39528879

http://blog.csdn.net/hello_hwc/article/details/39528879


SSH优化:在某一行后追加内容

sed -ir '13 iPort 52113\nPermitRootLogin no\nPermitEmptyPasswords no\nUseDNS no\nGSSAPIAuthentication no' sshd_config

在13行后追加这些内容


############################################

-n, --quiet, --silent  ----suppress automatic printing of pattern space

-i   [SUFFIX], --in-place[=SUFFIX]

-r 正则

p Print the current pattern space.

注:

pattern有鞋样子的意思.  正则表达式就是个鞋样子.

in place of 代替

in place 在对的位置; 适当的;

############################################

1,取行

[root@lanny test]# sed -n '3p' test.txt
jeffery
[root@lanny test]# sed -n '2,3p' test.txt
liyao
jeffery

2,过滤

[root@lanny test]# sed -n '/liyao/p' test.txt
liyao
删除第三行:
sed -n '/3/d' test.txt

3,拼凑

知识点:sed后向引用:(全屏蔽取出思想)

[root@lanny ~]# echo "oldboy oldgirl"|sed -r 's#(.*) (.*)#\1 \2#g'
oldboy oldgirl

注解:

()的作用: 's#(.*) (.*) 正则的书写,显然我们后面的()都不希望被转义
--r的作用:sed -r ,加入后面要匹配的空格符号不希望被转义,那么就加-r选项了.
 sed -r 's#(.*)#chkconfig \1 off#g'
-r 不转义 后面的括号等为原来意义
(.*) 过滤出输出的内容 括起来 后面可以通过 \1取出来

[root@lanny test]# sed -r 's#(.*)#chkconfig \1 off#g' test.txt
chkconfig test off
chkconfig liyao off
chkconfig jeffery off

拼凑特例:=========================可能不好理解 grep ^ file.txt 发现什么也没匹配,

思想:什么都没屏蔽

但是这样报错呀:

[root@lanny l]# sed -r 's##a b #g' name.txt
sed: -e expression #1, char 0: no previous regular expression

======================================必须得加个东西了,那就加^吧.哈哈,也算是理解了.

[root@lanny l]# sed -r 's#^##g' name.txt
liyao
oldboy
test
[root@lanny l]# sed -r 's#^#a b #g' name.txt
a b liyao
a b oldboy
a b test

sed什么参数都不加,凭凑在最后了

思想:匹配到,替换掉.

情况一:用^匹配:
[root@lanny data]# sed 's#^#chkconfig on #g' name.txt 
chkconfig on oldlanny
chkconfig on jack
chkconfig on jeffery
chkconfig on liming

情况二:用$匹配:chkconfig没加上,只匹配到最后一部分.

[root@lanny ~]# sed -r 's#$#chkconfig on #g' aa
maxiaolangchkconfig on
lannychkconfig on
lannyma.blog.51cto.comchkconfig on

awk也可以拼凑:

awk '{print $1}'

进阶:
awk '{print "chkconfig " $1 " on"}'

sed结合正则表达式过滤ip地址:

[root@lanny ~]# ifconfig eth0|sed -n '2p'
inet addr:192.168.14.134 Bcast:192.168.14.255 Mask:255.255.255.0
[root@lanny ~]#
[root@lanny ~]# ifconfig eth0|sed -n '2p'|sed -r 's#^.*addr:##g'
192.168.14.134 Bcast:192.168.14.255 Mask:255.255.255.0
[root@lanny ~]#
[root@lanny ~]# ifconfig eth0|sed -n '2p'|sed -r 's#^.*addr:##g'|sed -r 's# B.*$##g'
192.168.14.134

前2个##匹配到的过滤掉(删掉)输出.

sed -r 's#^.*addr:##g'

4,替换

[root@lanny test]# sed -i 's#lanny#jeffery#g' test.txt
[root@lanny test]# cat test.txt
test
liyao
jeffery

sed 4个功能的更多相关文章

  1. sed 常用的功能

    1.每行后面加入一个空行 sed 'G' num.txt,保留空间(Hold Space)的内容默认值是一个空行.2.每行前面加入一个空行 sed '{x;p;x}' num.txt,交换模式空间和保 ...

  2. [sh]sed 4个功能

    [root@lanny test]# cat test.txt test liyao lanny 经典博文: http://oldboy.blog.51cto.com/2561410/949365 h ...

  3. awk sed 总结

    Awk总结笔记 介绍 90年代 new awk :nawk Linux 的是gawk 我们简化awk 用法 #  awk [options ] ‘scripts’ file1 file2 .... # ...

  4. [转]sed命令详解

    转载:http://blog.chinaunix.net/u/22677/showart_1076318.html   1.简介 sed是非交互式的编辑器.它不会修改文件,除非使用shell重定向来保 ...

  5. sed 详解

    sed 详解 1.简介 sed是非交互式的编辑器.它不会修改文件,除非使用shell重定向来保存结果.默认情况下,所有的输出行都被打印到屏幕上. sed编辑器逐行处理文件(或输入),并将结果发送到屏幕 ...

  6. 三大文本处理工具grep、sed及awk的简单介绍

    grep.sed和awk都是文本处理工具,虽然都是文本处理工具单却都有各自的优缺点,一种文本处理命令是不能被另一个完全替换的,否则也不会出现三个文本处理命令了.只不过,相比较而言,sed和awk功能更 ...

  7. 【转载】sed命令详解

    [转载自]http://www.cnblogs.com/edwardlost/archive/2010/09/17/1829145.html   sed -i  把后面的操作后的文本输出回原文本   ...

  8. sed命令详解--转

    1.简介 sed是非交互式的编辑器.它不会修改文件,除非使用shell重定向来保存结果.默认情况下,所有的输出行都被打印到屏幕上. sed编辑器逐行处理文件(或输入),并将结果发送到屏幕.具体过程如下 ...

  9. Linux之sed详解

    转载:http://blog.chinaunix.net/u/22677/showart_1076318.html   1.简介 sed是非交互式的编辑器.它不会修改文件,除非使用shell重定向来保 ...

随机推荐

  1. Linux useful command

    查看linux系统里面的各个目录.文件夹的大小和使用情况, 先切换到需要查看的目录,如果需要查看所有linux目录的使用情况就直接切换到系统跟目录,然后执行: du -h --max-depth=1 ...

  2. Android studio打包APK混淆配置

    要在打包APK时加入混淆需要在Module中的buid.gradle中加入如下信息 buildTypes { release { minifyEnabled true shrinkResources ...

  3. Android-Application

    1:Application是什么? Application和Activity,Service一样,是android框架的一个系统组件,当android程序启动时系统会创建一个 application对 ...

  4. 解决tableViewCell分割线不到左边界的问题

    在tableView控制器的.m文件中任何位置加入以下两个方法即可解决 /** * 下面两个方法解决cell分割线不到左边界的问题 */ -(void)viewDidLayoutSubviews { ...

  5. IOS中文版资源库

    Swift 语言写成的项目会被标记为  ★ ,AppleWatch 的项目则会被标记为 ▲. [转自]https://github.com/jobbole/awesome-ios-cn#librari ...

  6. android 之 spinner的简单使用

    先看spinner的效果图: 代码: MainActivity package com.mecury.spinnertest; import java.util.ArrayList; import a ...

  7. System.Data.Entity 无法引用的问题

    最近刚学MVC,跟着网上的博客学习,发现代码中有这样一句: using System.Data; using System.Data.Entity; 我项目引用的时候,也引用了System.Data. ...

  8. CMD命令名详细大全

    在运行菜单里键入CMD,就可以调出CMD命令窗口,有关某个命令的详细信息,请键入 HELP 命令名 ASSOC 显示或修改文件扩展名关联. AT 计划在计算机上运行的命令和程序.ATTRIB 显示或更 ...

  9. 删除表空间时,遇到了ORA-14404错误

      Oracle中删除表空间时,遇到了ORA-14404错误.   错误信息如下: SQL> DROP TABLESPACE PART1 INCLUDING CONTENTS AND DATAF ...

  10. 有关RDS上只读实例延时分析-同适用于自建MySQL主从延时分析判断

    个人不是很喜欢在技术上跟人互喷,尤其是不在同一个岗位上的人.一方面本人的性格如此,另一方面,我自身的口水也确实是不行,人生经历了第一次的双11洗礼,在大促的环境下,总算知道了有些东西是否应该规避,这次 ...