Depends: init-system-helpers (>= 1.13~)
означает, что для rabbitmq-server
требуется init-system-helper
1.13 или более поздняя версия , поэтому версия по умолчанию в любом поддерживаемом выпуске Ubuntu должна удовлетворять зависимости. Просто беги
sudo apt-get install init-system-helpers
Однако вы все еще используете Ubuntu 12.04, в которой нет init-system-helpers
. Вам необходимо перейти на поддерживаемую версию Ubuntu.
BEGIN { OFS = FS = "\t" }
FNR == NR {
for (i = 2; i <= NF; ++i)
if ($i == 2) ++c[i]
next
}
{
a[nf=1] = $1
for (i = 2; i <= NF; ++i)
if (c[i] >= t) a[++nf] = $i
$0 = ""
for (i = 1; i <= nf; ++i)
$i = a[i]
print
}
Эта awk
программа будет подсчитывать количество вхождений значения 2
в каждом столбце и сохранять эти значения в массивеc
(по одному элементу в этом массиве на столбец данных ). Он делает это при чтении входного файла в первый раз (это блок FNR == NR
).
При повторном чтении входного файла он использует эти счетчики для переноса соответствующих столбцов из ввода в массив a
для каждой прочитанной строки. Значение переменной t
используется в качестве порогового значения для принятия решения о том, следует ли включать столбец или нет. Это первый цикл for
в последнем блоке кода.
Затем он создает новую запись данных из этого массива и распечатывает ее.
Тестирование (обратите внимание, что входной файл задается дважды в командной строке, awk
чтобы можно было выполнить два прохода над ним):
$ cat file
Individuals M1 M2 M3
Ind1 0 0 2
Ind2 0 2 2
Ind3 2 2 2
$ awk -v t=1 -f script.awk file file
Individuals M1 M2 M3
Ind1 0 0 2
Ind2 0 2 2
Ind3 2 2 2
$ awk -v t=2 -f script.awk file file
Individuals M2 M3
Ind1 0 2
Ind2 2 2
Ind3 2 2
$ awk -v t=3 -f script.awk file file
Individuals M3
Ind1 2
Ind2 2
Ind3 2
$ awk -v t=4 -f script.awk file file
Individuals
Ind1
Ind2
Ind3
Не уверен, что это быстро:
awk -v value=0 '
NR==FNR{for(i=2;i<=NF;i++){if($i==value){s[i]++}}}
NR!=FNR {
printf "%s"OFS,$1
for (i=2;i<=NF;i++){if(s[i]>1)last=i}
for (i=2;i<=NF;i++){
if(s[i]>1){
if (i==last)printf "%s\n",$i
else printf "%s"OFS,$i}
}
}
' file file
Возможно, вы захотите установить OFS
на вкладку(BEGIN{OFS="\t"}
.)