如何用"替换值。"在sed

时间:2015-08-11 02:13:06

标签: sed

我想替换"一个数字,后跟任意数量的空格,后跟一个句点,可能还有更多的空格"只有数量和期限。

例如,'14 . x'将成为'14.x'

我的测试数据是:

1. c4 e5 2. g3 c6 { good move. } 3. Bg2 Nf6 4. Nc3 $6 d5 5. cxd5 cxd5 6. Qb3 Nc6 $1.. Nxd5  Nd4
8. Nxf6+ Qxf6 9. Qd1.f5 10. d3 Rc8 (10... Bb4+ $5 11. Bd2 Bxd2+  12. Qxd2 Qa6 $1.3. Rc1.xa2
14. Bxb7 $2 Rb8 15. Qb4 Bd7) 11. Kf1.c5  12. Nf3 O-O 

我该怎么做?

1 个答案:

答案 0 :(得分:2)

如果您希望从 方面删除任何个数量的空格,则应尝试s/\([0-9]\) *\. */\1./g

$ echo '11.  A 12  .B 13  .  C 14.D 15 . E' | sed  's/\([0-9]\) *\. */\1./g'
11.A 12.B 13.C 14.D 15.E

对于您的测试数据,结果如下:

1.c4 e5 2.g3 c6 { good move. } 3.Bg2 Nf6 4.Nc3 $6 d5 5.cxd5 cxd5 6.Qb3 Nc6 $1.. Nxd5  Nd4
8.Nxf6+ Qxf6 9.Qd1.f5 10.d3 Rc8 (10... Bb4+ $5 11.Bd2 Bxd2+  12.Qxd2 Qa6 $1.3.Rc1.xa2
14.Bxb7 $2 Rb8 15.Qb4 Bd7) 11.Kf1.c5  12.Nf3 O-O