使用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秒和6.9米有单个空格,因此只能替换我们在sed
中提供的值,但其他人不能。
怎么做?
答案 0 :(得分:3)
这似乎是一件有趣的事情,但这应该做你想说的事情:
sed 's/\([^ ]\) \([^ ]\)/\1,\2/g'
替换非空白后跟空白,后跟另一个非空白,第一个非空白,逗号,第二个非空白。对该行中的每个空白重复。