首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用sed替换与导出的变量匹配的模式

使用sed替换与导出的变量匹配的模式
EN

Stack Overflow用户
提问于 2019-03-19 08:22:07
回答 1查看 273关注 0票数 0

如何使用sed将匹配的模式替换为EXPORT变量?或者有没有一种方法可以在调用sed文件时访问外壳脚本变量?

shell_cript.sh

代码语言:javascript
复制
for i in ./data/*.sav;
do
    read_input (){
        read number_one number_two
        read date1 inventory
        read price
    } < $i
    read_input
    export number_one
    export i
    export number_two
    export inventory
    export price
    sed -f test.sed $2
done

test.sed

代码语言:javascript
复制
s/Filename/$i/g
s/1stplace/$number_one/g
s/2ndplace/$number_two/g
s/\$\$\$\$/$price/g

file.sav

代码语言:javascript
复制
Jonathan Lee
12/12/2019 2
1000
EN

回答 1

Stack Overflow用户

发布于 2019-03-19 08:57:17

如果将所有sed命令放在sed脚本文件中,将无法向其传递变量。

您需要做的是在命令行级别传递所有的sed命令,并使用双引号"让bash/ $解释shell并进行适当的变量替换。您不需要对变量执行export操作,因为在创建sed子进程之前,shell将完成变量替换。

代码语言:javascript
复制
sed 's/Filename/'"$i"'/g;s/1stplace/number_one/g;s/2ndplace/number_two/g;s/\$\$\$\$/price/g'
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55231939

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档