Выполнено описанным ниже способом с использованием awk
Команда:awk -F ";" '{gsub(/\./,",",$2);print $1";"$2";"$3}' filename
выход
2018.01.02;1,5;comment 1
2018.01.04;2,75;comment 2
2018.01.07;5,25;comment 4
2018.01.09;1,25;comment 7
Это соглашение об именах называется PascalCase, или Upper Camel Case, или StudlyCase. В Википедии есть список соглашений об именах.
Хотя я не слышал о такой условности для Баша. Он кажется более открытым -мыслящим человеком. Единственное известное мне соглашение для Bash — использовать слова с заглавной буквы для констант. Этот ответ говорит об этом. TL;DR :выберите соглашение и придерживайтесь его.
То, что вы описываете, иногда называют PascalCase -, но, насколько я знаю, нет «кристально ясного» определения этих типографских правил письма.
Что касается именования переменных Bash, я не знаю, действительно ли использование PascalCase так распространено. Единственная «жесткая» рекомендация, которую я знаю, это не использовать все имена переменных в верхнем регистре, если вы не хотите экспортировать такую переменную в переменную среды (есть много вопросов здесь и на StackOverflow по этой теме ). Причина в том, что (, в частности )в Bash, важные переменные окружения, такие как PATH
, все -в верхнем регистре, и вы захотите избежать столкновения/замены этих переменных случайно одинаковыми -именованными переменными. вашего сценария. Поскольку оболочка чувствительна к регистру, использование имен в нижнем -или смешанном регистре для «обычных» переменных помогает избежать этой проблемы.
Обратите внимание , однако, что это не так просто, если вы пишете сценарии для других оболочек; как отметил @StéphaneChazelas, например, есть все -строчные переменные со специальным значением в zsh
и csh
, так что вам в целом хорошо -рекомендуется прочитать документацию по вашей оболочке. Для sh
, bash
и ksh
проверка вашего скрипта с помощью shellcheck
(, также доступного как отдельная программа во многих дистрибутивах Linux ), может быть очень полезной, поскольку она также ищет (некоторые из )эти потенциальные конфликты имен.