Perl
может захватывать, как показано на рисунке :По предложению @Thor:
$ perl -F, -anE '$,="," ; say splice(@F,0,2), map { 2*(2*($_-1)+1) } @F' inp.csv
Использование другого подхода:
$ perl -lpe '
/^[^,]*,[^,]*/g; #positions the search engine before the 2nd comma.
s/\G,\K([^,]*)/2*(2*($1-1)+1)/ge;
' inp.csv
Утилита настольного калькулятора GNU может сделать это как:
$ < inp.csv tr ',-' ' _' | sed -Ee 's/\S+/[&]/' |
dc -e "
[q]sq
[44an]s,
[1-2*1+2*]s=
[SM lN1+sN z0<a]sa
[LMnl,x LMnl,x lN2-sN]sb
[LMl=xn lN1<, lN1-dsN0<c]sc
[?z0=q 0sN lax lbx lcx 10an z0=?]s?
l?x
"
Это простые утилиты и пояснения по запросу, так как это простые и понятные коды.
Краткое пояснение:
Утилита dc
работает со стеком, где она хранит свои данные в виде кода. Отсюда он сохраняет n извлечений в регистрах.
Строковые данные заключены в квадратные скобки.
Отсечение выполняется с помощью рекурсии.
В этом постоянном коде имеется 7 регистров, хранящих код, а именно, q =, a b c ?
Два регистра M N хранят данные.
Вяжите в обратном направлении от конца. Код прописать? выполняет действие чтение следующей строки из ввода. Затем сравнивает, сколько элементов, разделенных пробелами, находится в его стеке; думайте о них как о полях. В случае 0 остановить и выйти. Фрагмент z0=q делает это. Он читается как :z is dc команда для возврата количества присутствующих элементов. То, что мы сравниваем с 0, и если равно, выполняется код, хранящийся в регистре q.
Как кто-то сказал в комментарии, вы можете разбить весь диск во время установки и передать все это вашему дистрибутиву Linux.
Чтобы ответить на ваш вопрос о двойной загрузке, если вы устанавливаете Windows (или Mac OS )перед установкой Linux, все должно быть в порядке (, если только большие операционные системы не начали перезаписывать загрузочную запись во время обновлений программного обеспечения ).