sed裡用正規表示法 - Linux

Table of Contents

我有一筆資料
裡面是用空格所分開的....
但是空格的長度是任意的 有些甚至是tab
例如:a.txt

1 3 5 7 9
3 4 3 2 5

現在我想要把他整理成漂亮一點的格式....
例如:b.txt

1:3:5:7:9
3:4:3:2:5

於是我下

sed 's\\[^\ \t\r\n\v\f\]\/:\g' a.txt > b.txt

但是並沒有做到我想要的.....
請問一下有沒有比較好一點的方法.....?或是我指令下錯了...

謝謝


--

All Comments

Eden avatarEden2009-10-01
sed -r 's/[ \t]+/:/g' a.txt > b.txt ?
Kama avatarKama2009-10-05
沒有-r 這個option...
Agatha avatarAgatha2009-10-09
那 sed 's/[ \t]\{1,\}/:/g' a.txt > b.txt ?
Rosalind avatarRosalind2009-10-12
可以了!! 感謝...不過是什麼意思呢?\{1,\}
Lucy avatarLucy2009-10-17
\{1,\}表示連續1個到無限多個
Tristan Cohan avatarTristan Cohan2009-10-19
{1,} 代表出現一次以上,等於 +
正常來講應該是用 + 啦,可能 sed 語法有不同
Connor avatarConnor2009-10-20
sed 's/\ \+/:/g;s/\t\+/:/g'
Hamiltion avatarHamiltion2009-10-22
sed 's/[\ \t]\+/:/g'
Isla avatarIsla2009-10-25
了解....感謝~!
Oscar avatarOscar2009-10-29
+ 是posix擴充,-r是開啟擴充,但沒有只好用 \{1,\}