2015-08-11 1 views
-1

Я хочу заменить все экземпляры «числа, за которым следует любое количество пробелов, за которым следует период и, возможно, больше пробелов» с указанием только числа и периода.Как заменить значение на "." in sed

Например, станет '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 

Как я могу это сделать?

+0

Я рад, что вы получили ответ, но данные вашего примера сбивают с толку. Неясно, вводит ли этот вывод наш вывод (возможно, вывод), и не понятно, что произошло с цифрами для ходов 7 или 13. В будущем, пожалуйста, укажите ввод и нужный результат. Было бы полезно, если бы вы отредактировали это, чтобы предоставить отсутствующие данные (ввод или вывод) и помечены как входные данные, а выходные данные - как выходные. Обратите внимание, что в качестве отступа материала в качестве кода выберите его, затем нажмите кнопку ** '{}' ** над полем редактирования. Также неплохо показать, что вы пробовали в целом. –

ответ

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 
+0

Nope. Извините, не работает – verlager

+0

@verlager, «не работает» - это * НЕ * очень хороший отчет об ошибке :-) Возможно, стоит сказать, что он делает *. Вы также можете попробовать транскрипт, который я предоставил, который * действительно * работает. – paxdiablo

+0

эхо 1. c4 e5 2. g3 c6 3. Bg2 Nf6 4. Nc3 $ 6 d5 5. cxd5 | sed 's/\ ([0-9] \) \ ./ \ 1./g' – verlager

Смежные вопросы