通常sed指令修改行内容时使用:sed -i " 9 s/^.*/"type in what you want modified!"/"

其中"type in what you want modified!"为替换后希望得到的内容。

由于用作替换的字符串里面包括与sed替换格式相同的"/",因此可以正常使用。

But,当希望通过sed方式修改配置文件中的目录时,由于用作替换的目录字符换(datapath=/home/datatest/)中包含"/",会影响sed的作用。

However,可用通过一下sed方式做替换操作:sed -i " 9 s:^.*:${datapath}:"

即:把"/"替换为":"

BTW,sed中使用“”比使用‘’明智。

自测示例脚本run.sh如下:

#!/bin/bash

#脚本名字run.sh,用于修改配置文件中数据的源路径和目标路径

getdatapath(){
# echo "入参:"$*
 if [ $# -eq 3 ];then
  if [[ ! -z $1 &&
    ! -z $2 &&
    ! -z $3 ]];then
    local emstype="$1"
    local srcdir="$2"
    local dstdir="$3"
    local configfile="../conf/DataParse.ini"

#获取对应配置文件中需要修改的行数

    local srclinenum=$(grep -n "SrcPath=" ${configfile}|awk -F ':' '{print $1}')

#对指定行所有内容进行重写
    sed -i ""${srclinenum}" s:^.*$:SrcPath=${srcdir}:" $configfile

    local dstlinenum=$(grep -n "ResultPath=" ${configfile}|awk -F ':' '{print $1}')
    sed -i ""${dstlinenum}" s:^.*$:ResultPath=${dstdir}:" $configfile
  else
    echo "run.sh--ERROR : Some parameter is null!"
  fi
 else
    echo "run.sh--ERROR : The parameter number is not matched!"
   fi
}

#获取源数据目录和目标目录
#getdatapath $*

getdatapath "testtype" "/home/srcdata/" "/home/dstdata/"

shell中通过sed替换文件中路径的更多相关文章

  1. shell 脚本sed替换文件中某个字符串

    有些大文件,特别的大.有几百兆,甚至更大. 用文本编辑器打开十分的费劲,电脑都卡死了. 想替换其中的字符串,很麻烦. 这个时候有了shell,简直强大到爆炸! # du -h user.sql 304 ...

  2. linux shell 脚本获取和替换文件中特定内容

    1.从一串字符串中获取特定的信息 要求1:获取本机IP:menu.lst为系统镜象的IP配置文件,需要从中获取到本机IP信息(从文件获取信息) timeout title live find --se ...

  3. grep和sed替换文件中的字符串

    sed -i s/"str1"/"str2"/g `grep "str1" -rl --include="*.[ch]" ...

  4. grep和sed替换文件中的字符串【转】

    sed -i s/"str1"/"str2"/g `grep "str1" -rl --include="*.[ch]" ...

  5. 用sed替换文件中的空格

    请教sed 替换问题 请教各位如何替换多个空格为一个字符,如一个文件中间隔符有是一个空格,有的地方是多个空格,想全部用“|”替换,如何处理,请指教 请教sed 替换问题 [code]sed '/ \+ ...

  6. sed替换文件中的字符串

    sed -i 's/原字符串/替换字符串/g' filename

  7. linux sed 批量替换文件中的字符串或符号

    sed -i :直接修改读取的文件内容,而不是输出到终端.   sed -i 就是直接对文本文件进行操作的   替换每行第一次出现的字符串 sed -i 's/查找的字符串/替换的字符串/' 文件   ...

  8. 使用 sed 命令查找和替换文件中的字符串的 16 个示例

    当你在使用文本文件时,很可能需要查找和替换文件中的字符串.sed 命令主要用于替换一个文件中的文本.在 Linux 中这可以通过使用 sed 命令和 awk 命令来完成. 在本教程中,我们将告诉你使用 ...

  9. linux 小技巧(查找替换文件中的ascii编码字符)

    这里纪录一些linux下用到的小技巧,以免遗忘 在linux中经常碰见各种文件处理.最常用的就是替换文件中的某些字符.常见字符替换还是很容易完成.但是有些不可见字符以及ascii编码字符等等都无法直接 ...

随机推荐

  1. php5.3不支持 ereg、ereg_replace等函数问题

    在php5.3环境下运行oscommerce,常常会出现Deprecated: Function ereg() is deprecated in...和Deprecated: Function ere ...

  2. java 三羊献瑞

    三羊献瑞 观察下面的加法算式: 其中,相同的汉字代表相同的数字,不同的汉字代表不同的数字. 请你填写"三羊献瑞"所代表的4位数字(答案唯一),不要填写任何多余内容. public ...

  3. UVA - 12174 Shuffle (预处理+滑动窗口)

    题意:已知歌单中的歌曲数目s,和部分的播放历史,问下一首可能播放的歌曲种数. 分析: 1.按照歌单数目s,将播放历史划分为几部分. 2.将播放历史的n首歌曲之前加上s首歌曲,之后加上s首歌曲,为防止标 ...

  4. 使用CORDIC算法求解角度正余弦及Verilog实现

    本文是用于记录在了解和学习CORDIC算法期间的收获,以供日后自己及他人参考:并且附上了使用Verilog实现CORDIC算法求解角度的正弦和余弦的代码.简单的testbench测试代码.以及在Mod ...

  5. linux解决端口冲突问题

    # 查看9000这个端口是否被使用 netstat -lnt | grep 9000 -l       显示正在被监听(listen)的端口 -n     表示直接显示端口数字 -t      表示的 ...

  6. 15.swoole学习笔记--异步写入文件

    <?php //异步写入文件 $content="hello world"; swoole_async_writefile('2.txt',$content,function ...

  7. Apache服务器多站点配置

    Apache多站点设置,主要是关于httpd.conf配置文件的设置. 在httpd.conf配置文件中最后面的<VirtualHost>标签 #<VirtualHost *:80& ...

  8. tcp协议与dup协议知识总结

    在工作之余用xmind总结了一些UDP协议与TCP协议的知识点,如果有需要可以通过下方的留言,分享xmind文件和xmind软件.

  9. office(CVE-2012-0158)漏洞分析报告

    2019/9/12 1.漏洞复现 ①发现崩溃 ②找到漏洞所在的函数,下断点,重新跑起来,单步调试,找到栈被改写的地方 ③分析该函数 把MSCOMCTL拖入IDA,查看该函数代码 ④查看调用栈,回溯. ...

  10. Apache使用mod_jk/mod_proxy模块实现代理、负载均衡的配置

    转载自:https://blog.csdn.net/yuanyuan_186/article/details/51290518 192.168.1.123/192.168.1.121为后端tomcat ...