Умножьте постоянное число в файле .dat из командной строки - PullRequest
0 голосов
/ 16 января 2019

У меня есть файл .dat с данными в строках. Каждая строка закрыта фигурной скобкой, а числа разделены запятой. Я хочу умножить все содержимое файла на постоянное число из командной строки, чтобы мне не пришлось делать это вручную.

например.

:{0, 16, 0, 0, 0, 0.0187782, 0.053621, 0.0045498, 3.2744e-05, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}:

Как мне это сделать?

1 Ответ

0 голосов
/ 16 января 2019

Вы можете делать такие вещи с помощью Perl, например ::

echo 10,20,999| perl -ple 's/(\d+)/$1*10/ge'
100,200,9990

Это не удастся с отрицательными числами и экспонентами, поэтому вам нужно лучшее регулярное выражение, чтобы указать, как могут выглядеть ваши числа. Я не эксперт по регулярным выражениям, но что-то вроде этого мне кажется, по крайней мере, близким:

echo ":{0, 16, 0.0187782, 0.053621, 0.0045498, 3.2744e-05}:" | perl -ple 's/([-+]?[0-9]*\.?[0-9]+([eE][-+]?[0-9]+)?)/$1*10/ge'

:{0, 160, 0.187782, 0.53621, 0.045498, 0.00032744}:

Если у кого-то есть лучшее регулярное выражение, скажите, пожалуйста, я обновлю.

Если ваши данные находятся в файле, вы можете сделать:

perl ... < file.dat
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...