Как подсчитать количество строк, где все поля есть ценность?

Чтобы решить проблему, вы должны продолжить установку - и это будет означать повторное выполнение сборки, но на этот раз с sudo . Причина, по которой вы не могли установить без sudo, заключается в том, как выглядит процесс установки программного обеспечения (большую часть времени).

  1. Шаг настройки - вы подготавливаете файлы для сборки программы. Для этого не нужны привилегии root.
  2. Шаг сборки - вы компилируете свою программу, в результате чего получаются исполняемые файлы и / или библиотеки. Для этого не требуются привилегии root.
  3. Установка - вы перемещаете библиотеки и / или исполняемые файлы в их место назначения в ОС, чтобы другие программы могли их использовать.

Сборка создает /usr/local/lib/python3.4/dist-packages/sklearn , чтобы другие программы могли его использовать (например, интерпретатор python), и поэтому вы получаете сообщение об ошибке.

0
11.06.2018, 19:38
6 ответов

BESO en awk:

awk '{for (i=2;i<=9;i++) if ($i != 0) next; n++} END {print n}' file

Perl:

perl -anE '$n += 8 == grep { $_ == 0 } @F[1..8] }{ say $n' file

o (como sugiere Glenn Jackman )usando el módulo List ::Util

perl -MList::Util=all -anE '$n++ if all {$_ == 0} @F[1..8]} {say $n' file
4
28.01.2020, 02:16

Ligeramente más sucinto siempre que sus datos de entrada ya estén desinfectados:

awk '$2+$3+$4+$5+$6+$7+$8+$9 == 0 {n++} END {print n}'
0
28.01.2020, 02:16
$ cut -d ' ' -f  2- <file | grep -v '[^0 ]' | wc -l
       2

Es decir, primero elimine la primera columna separada por espacios con cut, luego greppara las líneas que contienen solo ceros y espacios, luego cuente estas líneas.

O, usando greppara hacer el conteo:

$ cut -d ' ' -f 2- <file | tr -d ' ' | grep -cx '00000000'
2
0
28.01.2020, 02:16

Escribir un poco menos en awk :comparar la concatenación de esos campos con ceros concatenados:

awk '$2$3$4$5$6$7$8 == "0000000" {++n} END { print n }' input.txt
1
28.01.2020, 02:16

Otro awkenfoque:

awk '{$1=""} $0 !~ /[1-9]/{seen++} END{print seen}' infile
2

O en caso de que tenga más de 9 columnas y solo quiera marcar 2 ~9:

awk '$2$3$4$5$6$7$8$9 !~ /[1-9]/{seen++} END{print seen}' infile
2
0
28.01.2020, 02:16

Сgrep:

grep -Exc '[^[:space:]]+([[:space:]]+0){8}'
0
28.01.2020, 02:16

Теги

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