Вы можете использовать awk
, чтобы сложить все это.
awk '{ arr[$2] += $1} END {for (key in arr) {printf "%4s %s\n", arr[key], key}}' file1 file2
Объяснение
{ arr[$2] += $1}
установите индекс массива нашей строки aka $2
в +=
число $1
END
Когда мы закончим{for (key in arr) {printf "%4s %s\n", arr[key], key}}
Пройдитесь по всему массиву и выведите его. Что я сделал для проверки
file1
7 umslipped
1 umslippersmouthwashand
3 umslobagas
35 umslopogaas
5 (umslopogaas
15 (umslopogaas)
1 umslower
6 umsmall
2 umsnag
2 um[snaps
13 umsnootchie
2 umsnow
84 umso
14 um-so ##
file2
14 um-so ##
84 umso
2 umsnow
13 umsnootchie
2 um[snaps
2 umsnag
6 umsmall
1 umslower
15 (umslopogaas)
5 (umslopogaas
35 umslopogaas
3 umslobagas
1 umslippersmouthwashand
7 umslipped
Output
10 (umslopogaas
12 umsmall
6 umslobagas
28 um-so
2 umslippersmouthwashand
30 (umslopogaas)
70 umslopogaas
26 umsnootchie
4 umsnag
168 umso
4 um[snaps
14 umslipped
4 umsnow
2 umslower
/etc/profile
и файлы в /etc/profile.d
читаются оболочками входа в систему. Это хорошо для таких вещей, как установка переменных окружения, которые наследуются дочерними процессами: таким образом они устанавливаются во всех программах в сессии. Это не подходит для настроек оболочки, таких как определения функций, поскольку они доступны только в данном экземпляре оболочки. Для настроек оболочки нужно использовать файл конфигурации оболочки, а не файл конфигурации сеанса. Для bash это ~/.bashrc
, и (в системах, где это включено) /etc/bash.bashrc
.
Для получения дополнительной информации смотрите Существует ли эквивалентный файл ".bashrc", читаемый всеми оболочками? и Разница между Login Shell и Non-Login Shell?