sed在比赛后追加?

时间:2011-06-16 19:47:36

标签: bash sed

我有一个这样的文件:(虽然长得多)

     1  5.60
     2  6.20
     3  6.58
     4  7.32
     5  8.10
     6  7.70

如何使用sed制作如下列表:

     1: 5.60
     2: 6.20
     3: 6.58
     4: 7.32
     5: 8.10
     6: 7.70

由于

4 个答案:

答案 0 :(得分:3)

sed 's/\(\S\)\s/\1:/' your_file

这也适用于多位数字,只要每行上两个数字之间至少有一个空格。

答案 1 :(得分:2)

为什么不像这样使用awk:

awk 'NF==2{printf("%s: %s\n", $1, $2);}' file.txt

输出

1: 5.60
2: 6.20
3: 6.58
4: 7.32
5: 8.10
6: 7.70

答案 2 :(得分:2)

另一种解决方案是:

  

sed -E's / ^([[0-9] +)/ \ 1:/'your_file

这只是替换行开头的任何数字字符串,后面跟冒号。

答案 3 :(得分:2)

这个适合我 - 基本上\ 1匹配第一个数字,\ 2匹配其余数字。

sed 's/\( *[0-9]*\)\(.*\)/\1:\2/' file.txt