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编码字符等等都无法直接 ...
随机推荐
- Codeforces1243C Tile Painting
原题面:https://codeforces.com/contest/1243/problem/C 题目大意:给定数字n,有n个方块,第i个和第j个之间的距离(abs(i-j))如果是n的因子,那么第 ...
- LeetCode455 分发饼干(简单贪心—Java优先队列简单应用)
题目: 假设你是一位很棒的家长,想要给你的孩子们一些小饼干.但是,每个孩子最多只能给一块饼干.对每个孩子 i ,都有一个胃口值 gi ,这是能让孩子们满足胃口的饼干的最小尺寸:并且每块饼干 j ,都有 ...
- S7-300数据处理基本知识(结尾以MW8+1 ADD指令实训仿真,并用状态表监控及刷写变量)
数据处理基本知识汇总 STEP7 的数据类型包括什么? 基本数据类型 复杂数据类型 用于FB(功能块)的输入,输出参数类型 用于FC(功能)的输入,输出参数类型 基本数据类型是什么? 先列举12种数据 ...
- mysql基本知识的总结
Mysql基本sql知识 Navicat快捷方式: 选中当前行 在行尾:shift+home 在行首:shift+end 执行当前行:ctrl+shift+R 复制当前行:ctrl+D 显示所有数据库 ...
- eclipse中使用jstl
错误提示为"can not find the tag library for http://java.sun.com/jsp/jstl/core" 这是我在练习把axis2和普通j ...
- JVM探秘:jstack查看Java线程状态
本系列笔记主要基于<深入理解Java虚拟机:JVM高级特性与最佳实践 第2版>,是这本书的读书笔记. jstack命令可以打印Java进程的各个线程堆栈跟踪信息,可以用来查看Java中各个 ...
- java核心-多线程(1)-知识大纲
Thread,整理一份多线程知识大纲,大写意 1.概念介绍 线程 进程 并发 2.基础知识介绍 Java线程类 Thread 静态方法&实例方法 Runnable Callable Futur ...
- 实验吧-杂项-flag.xls(notepad++查找)、保险箱(linux文件分解、密码破解)
flag.xls 下载文件,用notepad++打开,查找flag就能找到flag. 保险箱(linux文件分解.密码破解) 将图片保存下来,用kali的binwalk分析,发现有rar文件,然后用f ...
- Es知识整理
一.Es是如何实现分布式的 1.Es本身基于lucene,高度支持分布式的核心思想就在于,在多个服务器上启动多个Es进程实例,组建了一套Es集群. 2.其次,因为shard分片的应用,非常灵活的支持数 ...
- 2016蓝桥杯省赛C/C++A组第九题 密码脱落
题意: X星球的考古学家发现了一批古代留下来的密码. 这些密码是由A.B.C.D 四种植物的种子串成的序列. 仔细分析发现,这些密码串当初应该是前后对称的(也就是我们说的镜像串). 由于年代久远,其中 ...