2013-05-10 128 views
2

使用sed替換單個空格而不觸及多個空格序列。使用sed替換單個空格而不觸及多個空格

我有文件看起來像這樣:

Host/Domain Summary: Message Delivery 
sent cnt bytes defers avg dly max dly host/domain 

-------- ------- ------- ------- ------- ----------- 
    937  3293k  0 18.6 s 6.9 m theory.tifr.res.in 

    462  3740k  0  7.3 s 9.5 m ncra.tifr.res.in 

    286  1053k  4 20.4 s 1.3 h gmail.com 

問:

我想用逗號或沒有空間,但不接觸其他空間僅更換空單。我用sed嘗試過,但它直接佔用所有空間並用逗號替換它們。

例如:18.6 s和6.9 m有單個空間,因此只能用sed給出的值替換,但其他值不能。

怎麼辦?

回答

3

這似乎是一個有趣的事情是這樣做,但這應該做的,你說你想做的事:

sed 's/\([^ ]\) \([^ ]\)/\1,\2/g' 

更換非空白之後是一個空緊接着又非空白與第一個非空白,逗號和第二個非空白。重複該行中的每個空白。

+0

Jonathan Leffler @非常感謝我不知道我是怎麼忘了這個......我根據我的要求做了小小的改動。刪除「,」並保持原樣。 sed's/\([^] \)\([^] \)/ \ 1 \ 2/g' 非常感謝 – user2074481 2013-05-10 06:14:42

+0

'sed -e's/\ b \ b /,/ g' '應該做得很好'\ b'是字邊界 – abasu 2013-05-10 07:44:58

+0

abasu @非常感謝 – user2074481 2013-05-10 11:36:03

相關問題