2

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 は 1 つのスペースを持ち、それは私たちが与える値によってのみ置き換えることができますsedが、他のものは置き換えることができません。

どうすればそれができますか?

4

1 に答える 1

3

面白いことをしているように思えますが、これはあなたがやりたいと言ったことをするはずです:

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

非ブランクの後にブランクが続き、別の非ブランクが続くものを、最初の非ブランク、コンマ、および 2 番目の非ブランクに置き換えます。行内の空白ごとに繰り返します。

于 2013-05-10T06:04:54.490 に答える