• 宝贝是地名,你能想到这么浪漫的地名在哪儿吗? 2019-08-15
  • 何树山副省长到方圆机电调研指导工作 2019-08-15
  • 浙江12选500期走势图:sed初学者实用说明

    来源:本网整理

    彩票双色球历史开奖结果 www.s9h6.com 例如,在多个系统、应用程序安装之后,我们往往需要对很多配置文件进行修改,用vi编辑器意味着耗费时间、重复劳动,而sed就可将我们从繁重的重复劳动中解放出来。

    sed的调用方式:

    1、sed [sed选项] 'sed命令' 要修改的文件
    2、sed [sed选项] -f sed脚本 要修改的文件
    3、sed脚本 [sed选项] 要修改的文件

    这里仅介绍最常用的第一种方式

    sed选项:仅列常用的

    -i:直接修改源文件(不用这个选项的话无法直接修改,必须重定向到新文件,如果仅作为输出测试则不需此选项),还可将源文件修改前备份
    sed -i.bak 's/123/234/' test.txt 将test.txt备份为test.txt.bak,然后将文件内行第一个出现的“123”替换为“234”
    -e:多次编辑,例如先将所有的123替换为234,再将第7行前加#号注释
    sed -i -e 's/123/234/g' -i -e '7 s/^/#/' test.txt
    -f:指定sed脚本文件名
    -n:取消默认的输出(不打?。?,用sed不加任何选项的话你会看到所有内容输出,并不是按照sed命令所限制的条件输出,那么配合“p”命令经可以过滤掉不符合条件的行,并显示出符合条件的行,例如
    sed -n '查找所有包含字符123的行'p test.txt 或 sed -n '查找所有包含字符123的行p' test.txt

    sed命令:这里可以使用正则表达式,如遇特殊字符,需用“\”来屏蔽其特殊含义,例如“\$”表示普通的字符$

    x x为某行行号
    x,y 例如2,5,从第2行到第5行
    /val/ 查询包含“val”字符的行
    /val1/val2/ 查询包含两个模式的行
    val/,x 在给定行号的行上查询包含“val”的行
    x,/val/ 通过行号和模式查询匹配的行
    x,y! 不包含指定行号x,y的行

    p 打印匹配的行
    = 显示行号
    a\ 在定位了的行之后附加内容
    i\ 在定位了的行之后插入内容
    d 删除定位的行,例如:2d 代表删除第2行
    c\ 用新文本替换定位行的文本
    s 替换,形式为:'s/查找的内容/替换的内容/'
    g 进行全局替换,如不使用此选项将只对该行匹配到的第一个结果进行替换,该行下一个匹配的就不处理了。
    ...其他就不介绍了,百度搜下吧

    实例学习:
    test.txt文件内容为
    The honeysuckle band played all night long for only $90
    It was an evening of splendid music and company
    Too bad the disco floor fell through at 23:10
    The local nurse Miss P.Neave was in attendance

    1、显示第2行的内容
    sed -n '2p' test.txt

    2、显示第1到3行的内容
    sed -n '1,3'p test.txt

    3、仅显示包含“disco”的行
    sed -n '/disco/'p test.txt

    4、显示包含“$”字符的行
    sed -n '/\$/'p test.txt

    5、显示以数字结尾的行,[0-9]是正则表达式 代表数字0到9;“$”表示行尾(“^”表示行首)
    sed -n '/[0-9]$/'p test.txt
    显示结果为:
    The honeysuckle band played all night long for only $90
    Too bad the disco floor fell through at 23:10

    6、显示以数字结尾的行并显示以大写T为开头的行
    sed -n -e '/^T/'p -e '/[0-9]$/'p test.txt

    7、匹配任意字母、后跟任意字母的多次重复,并以“ing”结尾的行
    sed -n '/.*ing/'p test.txt

    8、第一行与最后一行
    sed -n '1p' test.txt
    sed -n '$p' test.txt

    9、将“nurse”改为“little nurse”,“&”命令用来重新调用被替换的内容
    sed -n 's/nurse/little &/p' test.txt

    10、先将所有的123替换为234,再将第7行前加#号注释
    sed -i -e 's/123/234/g' -i -e '7 s/^/#/' test.txt

    11、将“--------”删除,将空行删除,将第一行和最后一行删除,并打印第一列
    文件内容:
    Database Size(MB) Date Created
    ------------------------------------------
    mysql 2244 12/11/08
    test 5632 12/11/08

    (2 rows affected)
    命令:
    cat test.txt | sed 's/--*//g' | sed '/^$/d' | sed '$d' | sed '1d' | awk '{print $1}'
    显示结果:
    mysql
    test
    说明:
    使用s/--*//g删除横线-------
    使用/^$/d删除空行
    使用$d删除最后一行
    使用1d删除第一行
    awk {print $1}打印第一列

    12、一些杂项例子
    ^[0-9]表示行第一个字符为任意数字,例如“1asdf”;
    ^[0-9]*表示行首包含任意个数的数字,例如“1818asdf”
    [0-9][0-9]*$表示行尾包含至少2个数字,例如“asdfasdf18”“asdf1818”
    sed -i 's/^[0-9]*//g' test.txt 删除行首的任意数字
    sed -i -e 's/^[0-9]*//g' -i -e 's/$/& passed/' test.txt 删除行首任意数字,并在每行结尾加上“ passed”
    sed -i -e 's/^/#&' test.txt 给每行行首加上“#”注释
    s/\.$//g 删除以句点结尾的行的句点
    s/^[ ][ ]*// 删除行首的任意个空格
    s/^.// 删除行首的第一个字符
    s/^\/// 删除行首的“/”字符
    s/SP\(..\)//g 删除字符“SP”以及紧跟其后的两个任意字符,“SPLLY”-->“Y”

  • 本文相关:
  • shell中1小于/dev/null 2大于&1的含义
  • linux下自动备份MySQL数据并上传到FTP上的shell脚本
  • VPS自动备份数据库到FTP的脚本代码
  • linux下实现ftp自动备份shell脚本
  • shell脚本学习与总结
  • Bash Shell脚本学习小结
  • bash 循环中变量作用范围的问题分析
  • 一个shell写的ping函数
  • 一个可交互的并发ping检测脚本
  • 并发数据库压力测试的shell脚本代码
  • 免责声明 - 关于我们 - 联系我们 - 广告联系 - 友情链接 - 彩票双色球历史开奖结果 - 频道导航
    Copyright © 2017 彩票双色球历史开奖结果 www.s9h6.com All Rights Reserved
  • 宝贝是地名,你能想到这么浪漫的地名在哪儿吗? 2019-08-15
  • 何树山副省长到方圆机电调研指导工作 2019-08-15
  • 排例五走势图 安徽快3三不同和值遗漏数据 中彩网走势图500期 湖南快乐十分开奖结果查询结果 2019年码报资料图生肖 胜平负 3分赛车计划彩票稳赚技巧 广东11选5冷热 福彩3d软件官方网站 上海快3助手 内蒙古11选5金彩子 pk10冠军定位公式 内蒙古11选5前三组遗漏 足彩进球彩18088期 爱彩乐11选5超长版