Протестировано с OpenBSD awk
, GNU awk
и mawk
:
awk -F ',| +' '{ for (i = 2; i <= NF; ++i) { print $1, $i } }' data.in |
sort -u |
awk '{ f[$1] = (f[$1] ? f[$1] "," : "") $2 } END { for (k in f) { print k, f[k] } }'
Первый awk
расширяет заданные данные в
Special c1
Special c2
Special c5
Special c7
Special c1
Special c2
Special2 C6
. В качестве разделителя полей используются запятые и несколько пробелов, и для каждой записи (строки) ввода он печатает первое поле, а затем каждое из других полей по очереди на отдельных строках. Это предполагает, что в строках нет других пробелов или запятых, кроме тех, где они будут правильно интерпретироваться как разделители.
Сортировка
в середине сортирует ее в
Special2 C6
Special c1
Special c2
Special c5
Special c7
. Она выполняет сортировку, используя полную строку в качестве ключа сортировки, и отбрасывает любые повторяющиеся строки.
Последний awk
рекомбинирует данные в
Special c1,c2,c5,c7
Special2 C6
. Он делает это, используя первое поле в качестве ключа в ассоциативный массив, и сохраняет разделенные запятыми конкатенацию соответствующих данных во втором поле как Значение. В конце все собранные данные распечатываются.
Возможно, просто для ясности
/.bashrc
будет файлом в вашем корневом каталоге /
. Этот файл никогда не мог быть прочитан любым пользователем.
С другой стороны, ~/.bashrc
означает файл .bashrc
от текущего пользователя.
Другой вариант — отредактировать файл .bashrc
в вашем каталоге /etc/skel
. Это изменение является глобальным, и каждый пользователь в системе будет использовать его по умолчанию при создании.
.bash_profile
, как говорится в официальной документации:
This is the preferred configuration file for configuring user
environments individually. In this file, users can add extra
configuration options or change default settings:
Этот файл добавляет некоторые дополнительные переменные для каждого пользователя.
ПС. Если мы говорим о безопасности, не рекомендуется иметь пути exec в вашем домашнем каталоге, наиболее безопасным вариантом будет размещение вашего eclipse в каком-то месте, например /opt
, и как root создайте символическую ссылку на двоичный файл например:
cd /usr/bin
ln -s /opt/path/to/eclipse
Это создаст ссылку для всех пользователей, и вам не нужно будет добавлять эту конкретную (и, вероятно, опасную переменную ENV для каждого пользователя)