Это натолкнуло меня на мысль просто переустановить glibc-common http://hpc.mtech.edu/scyld-doc/administration-guide/x3137.html
yum reinstall glibc-common
Это не сработало, но тогда я был уверен, что у меня есть нужные "вкусности", и проблема была только в моем вмешательстве.
build-locale-archive все еще захлебывался во временном каталоге, поэтому я просто сделал rm -rf /usr/lib/locale/tmp
, после чего build-locale-archive
заработал.
Затем я перезапустил nginx и mysql, но я все еще был не в сети. Мне пришлось перезагрузить систему. Затем все заработало.
Для данного примера попробуйте:
Только для одного пользователя:
awk -F'|' '$1=="user1"{i=$1;u[$1]++;m[$1]+=$3};END{print i,"processes:",u[i],"minutes:",m[i]}' file1
user1 processes: 4 minutes: 22
Для всех пользователей:
awk -F'|' '++u[$1]{m[$1]+=$3};END{for (i in u) print i,"processes:",u[i],"minutes:",m[i]}' file1
user1 processes: 4 minutes: 22
user2 processes: 2 minutes: 2
NF — это «количество полей», т.е. количество столбцов. В этом случае каждая строка имеет 3 столбца, поэтому вывод всегда равен 3, независимо от количества совпадений. Вам нужно иметь дополнительный счетчик для каждого найденного совпадения, т.е. proc
ниже.
$ awk -F '|' '$1 == "user1" {proc += 1; sum += $3} END {print "user has run " proc " processes for a total of " sum " minutes" }' textfile
user has run 4 processes for a total of 22 minutes
Проблема в том, что NF — это не количество совпавших строк, а количество полей (столбцов ). Например, вы можете определить другую переменную, подобную «сумме», и использовать ее для подсчета.