2014-06-25 44 views
0

我想使用sed替换一个字符串中的两个或多个选项卡。但是,当我做sed:用一个替换两个或多个选项卡

echo“A \ t \ tB \ t \ tC”| SED的/ \ t \ t/\ T/G'

我得到同样的事情背

一个\ t \ TB \ t \的tC

我怎样才能得到这个?

A \ TB \的tC

提前感谢!

回答

0

看起来你已经得到它 - 你只是错过了一个标志呼应=>-e

$ echo -e "A\t\tB\t\tC" | sed -e 's/\t\t/\t/g' 
A B C 

$ echo -e "A\t\tB\t\tC" 
A  B  C 

更新:不要忘记上的sed -e的!

+0

虽然对我来说这并不是这样... 'echo -e“A \ t \ tB \ tC”| “我得到仍然 'A \t \t B \t B''在两个选项卡之间AB和BC之间只有一个 – user3199761

+0

这意味着,对于你来说,有那里'echo -e“A \ t \ tB \ tC”'和'echo -e“A \ t \ tB \ tC”|之间没有区别。 sed s/\ t \ t/\ t/g'?你能检查吗? (他们的输出是不同的,我的终端的预期工作) – assem

+0

虽然它可能是奇怪的,输出之间确实没有区别...我使用bash 3.2.51(1) - 释放mac。 – user3199761