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

时间:2014-09-03 07:45:35

标签: bash

我有字符串

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

我想从此字符串中删除{test}。 我用了

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

但这让我回头了

this-is-a-}file

如何删除}

由于

2 个答案:

答案 0 :(得分:8)

也可以尝试使用onbiner作为替代:

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

答案 1 :(得分:4)

您可以将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