shell中通过sed替换文件中路径
通常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替换文件中路径的更多相关文章
- shell 脚本sed替换文件中某个字符串
有些大文件,特别的大.有几百兆,甚至更大. 用文本编辑器打开十分的费劲,电脑都卡死了. 想替换其中的字符串,很麻烦. 这个时候有了shell,简直强大到爆炸! # du -h user.sql 304 ...
- linux shell 脚本获取和替换文件中特定内容
1.从一串字符串中获取特定的信息 要求1:获取本机IP:menu.lst为系统镜象的IP配置文件,需要从中获取到本机IP信息(从文件获取信息) timeout title live find --se ...
- grep和sed替换文件中的字符串
sed -i s/"str1"/"str2"/g `grep "str1" -rl --include="*.[ch]" ...
- grep和sed替换文件中的字符串【转】
sed -i s/"str1"/"str2"/g `grep "str1" -rl --include="*.[ch]" ...
- 用sed替换文件中的空格
请教sed 替换问题 请教各位如何替换多个空格为一个字符,如一个文件中间隔符有是一个空格,有的地方是多个空格,想全部用“|”替换,如何处理,请指教 请教sed 替换问题 [code]sed '/ \+ ...
- sed替换文件中的字符串
sed -i 's/原字符串/替换字符串/g' filename
- linux sed 批量替换文件中的字符串或符号
sed -i :直接修改读取的文件内容,而不是输出到终端. sed -i 就是直接对文本文件进行操作的 替换每行第一次出现的字符串 sed -i 's/查找的字符串/替换的字符串/' 文件 ...
- 使用 sed 命令查找和替换文件中的字符串的 16 个示例
当你在使用文本文件时,很可能需要查找和替换文件中的字符串.sed 命令主要用于替换一个文件中的文本.在 Linux 中这可以通过使用 sed 命令和 awk 命令来完成. 在本教程中,我们将告诉你使用 ...
- linux 小技巧(查找替换文件中的ascii编码字符)
这里纪录一些linux下用到的小技巧,以免遗忘 在linux中经常碰见各种文件处理.最常用的就是替换文件中的某些字符.常见字符替换还是很容易完成.但是有些不可见字符以及ascii编码字符等等都无法直接 ...
随机推荐
- php5.3不支持 ereg、ereg_replace等函数问题
在php5.3环境下运行oscommerce,常常会出现Deprecated: Function ereg() is deprecated in...和Deprecated: Function ere ...
- java 三羊献瑞
三羊献瑞 观察下面的加法算式: 其中,相同的汉字代表相同的数字,不同的汉字代表不同的数字. 请你填写"三羊献瑞"所代表的4位数字(答案唯一),不要填写任何多余内容. public ...
- UVA - 12174 Shuffle (预处理+滑动窗口)
题意:已知歌单中的歌曲数目s,和部分的播放历史,问下一首可能播放的歌曲种数. 分析: 1.按照歌单数目s,将播放历史划分为几部分. 2.将播放历史的n首歌曲之前加上s首歌曲,之后加上s首歌曲,为防止标 ...
- 使用CORDIC算法求解角度正余弦及Verilog实现
本文是用于记录在了解和学习CORDIC算法期间的收获,以供日后自己及他人参考:并且附上了使用Verilog实现CORDIC算法求解角度的正弦和余弦的代码.简单的testbench测试代码.以及在Mod ...
- linux解决端口冲突问题
# 查看9000这个端口是否被使用 netstat -lnt | grep 9000 -l 显示正在被监听(listen)的端口 -n 表示直接显示端口数字 -t 表示的 ...
- 15.swoole学习笔记--异步写入文件
<?php //异步写入文件 $content="hello world"; swoole_async_writefile('2.txt',$content,function ...
- Apache服务器多站点配置
Apache多站点设置,主要是关于httpd.conf配置文件的设置. 在httpd.conf配置文件中最后面的<VirtualHost>标签 #<VirtualHost *:80& ...
- tcp协议与dup协议知识总结
在工作之余用xmind总结了一些UDP协议与TCP协议的知识点,如果有需要可以通过下方的留言,分享xmind文件和xmind软件.
- office(CVE-2012-0158)漏洞分析报告
2019/9/12 1.漏洞复现 ①发现崩溃 ②找到漏洞所在的函数,下断点,重新跑起来,单步调试,找到栈被改写的地方 ③分析该函数 把MSCOMCTL拖入IDA,查看该函数代码 ④查看调用栈,回溯. ...
- Apache使用mod_jk/mod_proxy模块实现代理、负载均衡的配置
转载自:https://blog.csdn.net/yuanyuan_186/article/details/51290518 192.168.1.123/192.168.1.121为后端tomcat ...