zoukankan      html  css  js  c++  java
  • sed 批量替换文件

    1.想把某个目录下包含only-upstage的文件都替换成onlyu-base

    sed  -i -e 's/onlyu-upstage/onlyu-base/g'  ` grep -rl onlyu-upstage *`

    2. 打印文件中间几行,显示28-38 行中间的内容

    # cat /etc/cli.cfg | head -n 38 |tail -n +28
    head -n 38 显示38行前面的
    tail -n +28 从28行开始显示

    # cat /etc/cli.cfg | tail -n +28 |head -n 10
    从第28行开始显示,显示前面10行

    3. sed 打印匹配内容行号

    # sed -n -e '/build/=' /etc/cli.cfg
    28

    4. sed 打印匹配内容和行号
    # sed -n -e '/build/p' -e '/build/=' /etc/cli.cfg
    [cli_rebuild]
    28

    5.有时候制表符确实很难辨认,有一个方法可以看出一段空格到底是由若干个空格组成的还是由一个制表符组成的

    复制代码
    [zookeeper@master rh]$ sed -n l test.txt 
    this is first line$
    this is second line$
    this is third line$
    this is fourth line$
    this	fifth line$
    happy everyday$
    end$
    复制代码

    如果是制表符(TAB),那么会显示为 符号,如果是空格,就会原样显示。通过此方法即可以判断制表符和空格了。

    这是sed中的用法:l  [n]

    用明确的形式显示模版空间的数据:

    ①、以C-style的转义形式显示不能打印的字符(换行符、制表符等)和本身的Char形式;

    ②、长的行将进行分割,以字符结尾的行表示分割,以字符$结尾的行表示分割结束。

    ③、n指定显示行的长度,超过就进行分割;若为0表示不分割所有行;没有指定时就取命令行选项-l的设置,再没有就取默认值70。这是GNU的扩展功能。

    其实cut的-d选项的默认间隔符就是制表符,所以当你就是要使用制表符的时候,完全就可以省略-d选项,而直接用-f来取域就可以了!如果你设定一个空格为间隔符,使用 -d ' '而且,你只能在-d后面设置一个空格,可不许设置多个空格,因为cut只允许间隔符是一个字符。

  • 相关阅读:
    centos7安装docker-ce最新版
    输出第一个hello word程序(day1)
    centos7安装python3及ipython
    华为防火墙ping不通直连设备
    cisco网络设备基本命令
    linux中ftp
    查找你的域名DNS服务器
    Grafana 安装配置启动
    Jmeter 循环控制器
    CentOs 7查看端口占用情况,以及出现未找到命令的情况
  • 原文地址:https://www.cnblogs.com/wangyh702/p/11418248.html
Copyright © 2011-2022 走看看