zoukankan      html  css  js  c++  java
  • Shell脚本sed命令修改文件的某一行

    用法

    使用Shell脚本自动化调参需要对文件进行修改

    最初想到调用python进行字符串处理,通过正则表达式匹配然后修改,比较麻烦

    偶然发现shell其实自带sed命令可以处理这个问题

    #!/bin/bash
    sed -i "26c Delay = $1" camera.lua
    

    运行上述脚本./calib.sh 250即可将camera.lua配置文件的第26行改写为Delay = 250

    特殊

    若写入字符串中存在双引号则需要通过"进行转义

    #!/bin/bash
    sed -i "2c Name = "MyCam"" camera.lua
    

    扩展

    • sed
      sed命令可以按行显示文件,例如
    sed -n '26p' camera.lua  #显示camera.lua的第26行内容
    

    添加-i参数可对文件直接进行修改(慎用)

    • $0
      shell中一些特殊变量可以获取外部传入的参数值
    $ ./calib.sh 1 2 3
    

    $0在shell脚本中用于获取传入命令的参数,其中$0./calib.sh即命令本身
    $1为第一个参数,值为1
    以此类推$2 $3

  • 相关阅读:
    redis分布式锁原理
    设置linux源
    linux 设置固定ip 并且解决ping www.baidu.com不通问题
    java内存模型
    Messenger和MVVM中的View Services
    MVVMLight
    MVVMLight
    MvvmLight
    MVVM 事件转命令1
    Mvvm简介
  • 原文地址:https://www.cnblogs.com/azureology/p/13039573.html
Copyright © 2011-2022 走看看