首页 > 解决方案 > sed在linux中为字符串添加前缀的用法

问题描述

在我的问题陈述中,我想用前缀替换一个单词

sed 's/hello-world/'"$1"'-hello-world/g' test.sql

$1是作为参数传递给 shell 脚本的任何前缀

在这种情况下,第一次使用它绝对可以正常工作。让我们假设“前缀=新”

new-hello-world无论运行多少次,我们如何搜索和替换它?使用正则表达式也很好。

标签: linuxunix

解决方案


要使其具有幂等性,只需首先检查它是否不匹配。例如:

sed "/$1-hello-world/!s/hello-world/$1-hello-world/g" test.sql

这不是特别健壮,如果原始文档包含该行将失败new-hello-world hello-world,但可能足以满足您的需要。(你需要更多地担心/前缀中的字符,所以如果你想要一个强大的解决方案,还有很多工作要做。)


推荐阅读