# trim the beginning "t"
echo "test"|sed "s/^t//g"
est
# trim the ending "t"
echo "test"|sed "s/t$//g"
tes
# trim both the beginning and ending "t"
echo "test"|sed "s/(^t)|(t$)//g"
test
为什么第三个失败?我怎样才能使它发挥作用?
答案 0 :(得分:4)
您需要使用扩展正则表达式:-r
$ echo "test"|sed -r "s/(^t)|(t$)//g"
es
来自man sed
:
-r , - regexx-extended
在脚本中使用扩展正则表达式。
或者您也可以逃避所有正则表达式条件,例如Etan Reisner suggests:
$ echo test | sed 's/\(^t\)\|\(t$\)//g'
es
注意您也可以使用-e
表示多个命令:
$ echo "test"|sed -e "s/^t//" -e "s/t$//"
es
答案 1 :(得分:1)
你可以简单地使用它,
$ echo test | sed 's/^t\|t$//g'
es