您的位置:首页 > 其它

当sed遇到路径怎么办?

2013-12-11 21:07 323 查看
我们知道一般的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 "-----------------"


运行结果如下:

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: