这个bash脚本应该从grep的搜索结果中删除前导空白:这个sed命令为什么不匹配空格?
#!/bin/bash
grep --color=always [email protected] | sed -r -e's/:[[:space:]]*/:/'
但它不匹配的空白。如果我将替换文本更改为“ - ”,它将显示在输出中,但仍不会删除空格。我已经尝试了没有“*”,用“+”等转义“*”,但没有任何作用。有谁知道为什么不呢?
(我使用SED 4.2.1版本在Ubuntu 12.04。)
感谢所有,这是我修改后的脚本,它显示grep的颜色,也修剪前导空格:
#!/bin/bash
grep --color=always [email protected] | sed -r -e's/[[:space:]]+//'
+1 - 真棒。删除我的答案。每天学些新东西。 – Buggabill
他们为什么混淆sed? –
@MichaelFoukarakis因为在'grep --color'的输出中实际上没有':[[:space:]]' - 而是有一堆'\ 033 ['转义序列(可能因终端而异)在那里,为着色。 – ephemient