我有一个这样的文件:(虽然长得多)
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
由于
答案 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