当sed遇到路径怎么办?

我们知道一般的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 "-----------------"

运行结果如下:



  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
"sed: command not found" 是一个常见的错误消息,它表示在当前环境中找不到 sed 命令。sed 是一个流编辑器,用于对文本进行处理和转换。它在大多数类Unix系统中都是默认安装的,但在某些情况下可能会出现找不到的情况。 如果你遇到了这个错误,有几种可能的原因和解决方法: 1. sed 没有安装:首先,你需要确认 sed 是否已经安装在你的系统上。你可以尝试在终端中运行 `sed --version` 命令来检查是否安装。如果没有安装,你可以使用包管理器来安装 sed。例如,在Ubuntu上,你可以运行 `sudo apt-get install sed` 命令来安装 sed。 2. 环境变量问题:如果 sed 已经安装,但仍然出现 "sed: command not found" 错误,那么可能是由于环境变量配置不正确导致的。你可以尝试使用绝对路径来运行 sed 命令,例如 `/usr/bin/sed`。如果这样可以正常运行,那么你需要检查你的环境变量配置,确保包含了 sed路径。 3. 权限问题:如果你是在一个受限制的用户账户下运行命令,并且没有足够的权限来执行 sed 命令,那么也会出现 "sed: command not found" 错误。你可以尝试切换到具有足够权限的用户账户,或者联系系统管理员来解决权限问题。 总结一下,"sed: command not found" 错误通常是由于 sed 没有安装、环境变量配置问题或权限问题导致的。你可以根据具体情况来检查和解决这些问题。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值