gpt4 book ai didi

bash - 以编程方式将参数提供给 sed

转载 作者:行者123 更新时间:2023-11-29 09:27:43 25 4
gpt4 key购买 nike

假设我有一个 bash 脚本,它首先解析参数/文件。结果,脚本生成以下字符串:

args="-e 's/\\\$foo\\b/bar/gi' -e 's/\\\$baz\\b/qux/gi'"

现在我想输入结果字符串 (-e 's/\$foo\b/bar/gi' -e 's/\$baz\b/qux/gi') sed 以执行搜索并替换例如以下文件:

Hello $foo, hello $baz

如果使用 sed -e 's/\$foo\b/bar/gi' -e 's/\$baz\b/qux/gi',它返回:

Hello bar, hello qux

如果有人打电话:

sed $args

它给出了一个错误:

sed: -e expression #1, char 1: unknown command: `''

如何以编程方式将一系列参数提供给 sed

最佳答案

避免所有疯狂的转义并将 args 变量声明为 shell 数组:

args=(-e 's/\$foo\b/bar/gi' -e 's/\$baz\b/qux/gi')

然后在 sed 中使用它作为:

s='Hello $foo, hello $baz'
echo "$s" | sed "${args[@]}"
Hello bar, hello qux

关于bash - 以编程方式将参数提供给 sed,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34663919/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com