从字符串中删除一个单词(bash)

10

我有一个字符串

file="this-is-a-{test}file" 

我想从这个字符串中移除{test}。 我使用了

echo $file | sed 's/[{][^}]*//'  

但是这个返回了我

this-is-a-}file

我该如何删除}呢?

谢谢!

2个回答

17

作为替代方案,也可以尝试使用这个仅限于Bash的单行命令:

s="this-is-a-{test}file"
echo ${s/\{test\}/}

11
你可以使用正确的正则表达式和sed工具:
s="this-is-a-{test}file"
sed 's/{[^}]*}//' <<< "$s"
this-is-a-file

或者这个awk:

awk -F '{[^}]*}' '{print $1 $2}' <<< "$s"
this-is-a-file

3
"感谢" 的最佳表达方式是接受任何你提出的问题中最有帮助的答案(点击绿色对勾),这也可以稍微提高你的声望。如果你的声望达到15分以上,还可以给有帮助的答案点赞。请仔细阅读 [新手导游],祝你在回答问题时好运! - clt60

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接