Сценарии Ubuntu 16.04 в /etc/profile.d

Вы можете использовать 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
2
02.03.2017, 00:13
1 ответ

/etc/profile и файлы в /etc/profile.d читаются оболочками входа в систему. Это хорошо для таких вещей, как установка переменных окружения, которые наследуются дочерними процессами: таким образом они устанавливаются во всех программах в сессии. Это не подходит для настроек оболочки, таких как определения функций, поскольку они доступны только в данном экземпляре оболочки. Для настроек оболочки нужно использовать файл конфигурации оболочки, а не файл конфигурации сеанса. Для bash это ~/.bashrc, и (в системах, где это включено) /etc/bash.bashrc.

Для получения дополнительной информации смотрите Существует ли эквивалентный файл ".bashrc", читаемый всеми оболочками? и Разница между Login Shell и Non-Login Shell?

1
27.01.2020, 22:19

Теги

Похожие вопросы