$ < infile tr \- _ |
dc -e "
[q]sq
[SMlN1+sNz1<a]sa
[LMn32anlN1-dsN0<b]sb
[?z0=q0sNlax.1/n32anlbx[]pclcx]sc
3klcx
"
Выход:
-173.644 0 0 0 0 0 0
-172.703 0 0 0 0 0 0
-171.761 0 0 0 0 0 0
-165.173 0 0 0 0 0 0
-164.232 0 0 0 0 0 0
Краткое пояснение:
dc
— калькулятор с обратной польской записью RPN
, который хранит данные в своем основном стеке. Храните в именованном стеке M полей текущей строки, пока не дойдете только до одного постоянного. Разделите его.1 == умножьте на 10 И примените масштабирование к результату. Теперь повторно извлеките стек M и поместите обратно в основной стек поля текущей строки, которые остались неизмененными. Продолжайте выводить их на стандартный вывод, одновременно извлекая их из стека M. В конце файла или при достижении пустой/пустой строки, в зависимости от того, что произойдет раньше, мы выходим.