如何在sed中将值替换为“”

如何在sed中将值替换为“”,sed,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.

我想将数字的所有实例替换为任意数量的空格后跟句点,并可能将更多的空格替换为数字和句点

例如,"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 
我该怎么做呢?

如果你想从句点的两边删除任意数量的空格,你应该试试s/\[0-9]\*\*/\1./g:

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

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

@verlager,《不工作》不是一个很好的bug报告:-它可能值得说明它的作用。你也可以试试我提供的成绩单,它确实有用。C4E5 2。G3C63。Bg2 Nf6 4。Nc3$6 d5。cxd5 | sed's/[0-9]\./\1./g'1。C4E5 2。G3C63。Bg2 Nf6 4。Nc3 d5。cxd5=dw@verlager,我在你发布的内容的括号中没有看到反斜杠。我认为这只是一个打字错误,否则就会出错。此外,您的测试数据是数字周期空间,而不是您的问题所述的数字周期。这才是你真正的问题所在。我已经更新了答案以涵盖这两种情况。您的示例解决方案确实有效。但当我用我的字符串替换你的字符串时,句点前的空格仍然是:echo 1。C4E5 2。G3C63。Bg2 Nf6 4。Nc3$6 d5。cxd5 | sed's/[0-9]\./\1./g'=>1。C4E5 2。G3C63。Bg2 Nf6 4。Nc3 d5。CXD5我很高兴您能够得到答案,但您的示例数据令人困惑。现在还不清楚这是否是输入,我们的输出可能是输出,也不清楚第7步或第13步的数字发生了什么。今后,请提供输入和所需输出。如果您对其进行编辑以提供缺少的数据输入或输出,并将输入标记为输入,将输出标记为输出,这将非常有用。请注意,要将材质缩进为代码,请选择它,然后按编辑框上方的{}按钮。总的来说,展示你的尝试也是个好主意。
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