awk '
{
for (i=1;i<=NF;++i)
if ($i == 1) ++one[i]
else if ($i == 0) ++zero[i]
}
END {
for (i=1;i<=NF;++i)
c += (one[i]>0 && zero[i]>0)
print c
}' file
Это подсчитывает единицы и нули в двух отдельных массивах, one
и zero
. Они имеют одну запись на столбец во входном файле.
В конце переменная c
будет суммой количества столбцов, в которых есть как минимум один 1
и один 0
. Код предполагает, что количество столбцов в последней строке ввода такое же, как и в других строках входных данных.
Результатом этого с данным примером является 3
.
Как пытались описать @msp9011 и @user4556274, ваш сервер должен прослушивать «любой адрес» вместо адреса «127.0.0.1». Таким образом, в зависимости от программного обеспечения вашего веб-сервера, вы можете изменить так называемый «адрес прослушивания» на:
Если вы расскажете нам больше о том, какое программное обеспечение веб-сервера у вас есть, мы, возможно, сможем помочь с более подробной информацией об описанной выше процедуре.
Тем не менее, в случае успеха эта строка в вашем текущем выводе netstat:
tcp 0 0 127.0.0.1:8082 0.0.0.0:* LISTEN 4163/centrifuge
должно выглядеть так, если вы успешно обновили конфигурацию:
tcp 0 0 0.0.0.0:8082 0.0.0.0:* LISTEN 4163/centrifuge
Документация, процитированная @user4556274, означает, что если новое соединение приходит с интерфейсом, имеющим локальный IP-адрес 123.456.78.9, то цель ПЕРЕНАПРАВЛЕНИЯ изменит порт назначения на 8082, а хост назначения на 123.456.78.9 (т.е. НЕ 127.0.0.1 ). Поскольку ваша конфигурация прослушивает только 127.0.0.1, она не будет видеть пакеты с любым другим адресом назначения. Адрес 0.0.0.0 является особым и означает, что он будет прослушивать все адреса.