红联Linux门户
Linux帮助

当sed遇到路径怎么办?

发布时间:2016-03-30 15:10:10来源:linux网站作者:蒋国宝

我们知道一般的sed文本替换命令格式如下:

sed -e "s/origin/new/g"  input.txt 


但当我们要替换的东西或替换后的东西不再像origin或new这样,而是一个路径时怎么办呢?

答案是转义!


例如我有以下input.txt的文本

1.set path VARPATH running workspace. 
2.runing this program


我想把里面的VARPATH替换为/var/tmp/cloud,用shell脚本实现如下:

!/bin/sh
##########################################
# sedpath.sh  
#  this script is used to deal with sed replace with path 
##########################################

VARPATH="/var/tmp/cloud" 
VARPATHSED=$(echo ${VARPATH} |sed -e 's/\//\\\//g' ) 
echo "origin content:" 
echo "-----------------" 
cat input.txt 
echo "-----------------" 
echo "VARPATH=${VARPATH}" 
echo "VARPATHSED=${VARPATHSED}" 

cat input.txt |sed -e "s/VARPATH/${VARPATHSED}/g" > output.txt 

echo "the result content:" 
echo "-----------------" 
cat output.txt 
echo "-----------------" 


运行结果如下:

当sed遇到路径怎么办?


本文永久更新地址:http://www.linuxdiyf.com/linux/19377.html