zoukankan      html  css  js  c++  java
  • sed命令的新认知

    1.首先介绍sed的作用

    学习任何语法都要先学习格式,对格式理解才能更好的利用语法 *****

    1)查找过滤文件内容
    2)替换内容 直接替换
    3)如果内容输出到屏幕 临时替换 屏幕上显示的内容替换 但是不影响源文件
    4)如果内容不显示到屏幕 则替换源文件
    5)增删改查

    2.sed常用的参数

    -r 支持扩展正则
    -i 替换文件中的内容
    -n 取消默认输出

    3.sed的语法格式

    学习任何语法都要先学习格式,对格式理解才能更好的利用语法 *****

    语法格式:
    sed '动作' 文件
    sed '模式 动作' 文件
    sed '过滤内容 动作' 文件
    sed '要找的内容 干啥' 文件

    4.sed的实际操作

    01.sed查找过滤文件内容
    精确匹配行
    语法:
    sed 'np' file # 显示文件中的第n行 n为数字
    -n 取消默认输出

    02.模糊匹配 在sed中n就有p、np连用*****
    语法:
    sed -n '/过滤的内容/p'
    // #模式 需要过滤的内容查找的内容
    p #print 打印输出到屏幕

    逗号表示范围 字符串之间的范围
    sed -n '//,//p' file
    比如我们取日志指点的时间内的信息
    1月25号早上8点30到9点的信息
    [root@wish-10.0.0.200-15:50:05~ ]#sed -n '/Jan 25 08:30:01/,/Jan 25 09:00:01/p' /var/log/messages
    Jan 25 08:30:01 wish-10 systemd: Started Session 1070 of user root.
    Jan 25 08:30:01 wish-10 systemd: Starting Session 1070 of user root.
    Jan 25 08:35:01 wish-10 systemd: Started Session 1071 of user root.
    Jan 25 08:35:01 wish-10 systemd: Starting Session 1071 of user root.
    Jan 25 08:40:01 wish-10 systemd: Started Session 1072 of user root.
    Jan 25 08:40:01 wish-10 systemd: Starting Session 1072 of user root.
    Jan 25 08:45:01 wish-10 systemd: Started Session 1073 of user root.
    Jan 25 08:45:01 wish-10 systemd: Starting Session 1073 of user root.
    Jan 25 08:50:01 wish-10 systemd: Started Session 1074 of user root.
    Jan 25 08:50:01 wish-10 systemd: Starting Session 1074 of user root.
    Jan 25 08:55:01 wish-10 systemd: Started Session 1075 of user root.
    Jan 25 08:55:01 wish-10 systemd: Starting Session 1075 of user root.
    Jan 25 09:00:01 wish-10 systemd: Started Session 1076 of user root.

    03.sed之增加内容
    -a append 追加内容/指定某行追加内容
    -i insert 插入内容/指定某行插入内容
    -c change 替换内容/指定某行替换

    sed 'na 内容' 1.txt #n就代表第几行
    sed '2i 内容' 1.txt
    sed '2c 内容' 1.txt
    这种修改都是临时修改 在屏幕上修改了 但是不影响源文件、加上参数-i才能真正被修改到文件内容里面

    04.替换内容、替换字符串、替换单词
    格式:
    sed 's#找谁#替换成谁#g' file # 临时替换/把替换的内容输出到屏幕上
    sed -i 's#找谁#替换成谁#g' file # 永久替换

    利用sed把1,10行前面加上注释
    sed -i '1,10s/^/#/g' passwd

    05.sed之删除
    d 删除动作
    sed -i 修改文件中的内容,不加-i 只在屏幕上显示动作后的内容
    删除1到10行
    sed -i '1,10d' file
    删除7到最后一行
    sed -i '7,$' file
    删除和wish有关的行
    sed -i '/wish/d' file

    06.sed后项引用前向
    想要输出的内容经过正则匹配使用()保护起来
    输出的时候1就是显示第一个()中的内容 2显示第二个()的内容
    sed -r 's#()#1#g' file
    利用后项引用取出ip地址
    [root@wish-10.0.0.200-16:12:48~ ]#ifconfig eth0|sed -rn '2s/^.*inet (.*) netm.*$/1/gp'
    10.0.0.200
    利用后项引用取出ip地址和netmask
    [root@wish-10.0.0.200-16:15:10~ ]#ifconfig eth0|sed -nr '2s/^.*inet (.*) netmask (.*) bro.*$/12/gp'
    10.0.0.200 255.255.255.0

  • 相关阅读:
    uni-app、VUE、微信小程序之异同
    git学习之通俗易懂篇(四)
    css学习之-----flex布局
    git学习之通俗易懂篇(三)
    git学习之通俗易懂篇(二)
    防止非法登录
    MVC 路由配置
    C# 跨线程调用控件
    【推荐】gitee 的使用,sts4公钥私钥的配置,
    查看java的springboot的内存占用
  • 原文地址:https://www.cnblogs.com/w1sh/p/14327377.html
Copyright © 2011-2022 走看看