Эта проблема отслеживалась здесь:проблема kde
Обходной путь:
Откройте :IntelliJ IDEA -> Справка > Редактировать пользовательские свойства
и поместите эту строку:
suppress.focus.stealing=false
Примечание. :Ide может потребоваться перезагрузка, чтобы применить это новое свойство.
Один из подходов — прочитать файл дважды. В первый раз считают F, а во второй раз выводят строку. Что-то вроде
#!/bin/sh
awk -v n=3 '
NR==FNR { for (i=1;i<=NF;i++) { if ($i == "F") { c[i]++ }} ;next }
{ for (i=1;i<=NF;i++) { if (c[i] < n) { printf("%s ", $i) } } ;printf("\n") }
' filename filename
NR==FNR
— это уловка, чтобы увидеть, первый или второй раз мы читаем файл. Предполагая, что в файле вообще есть какие-либо строки, это верно только при первом чтении файла. Массив c
представляет собой количество F символов в этом столбце. next
говорит, что вся обработка этой строки завершается при первом чтении файла. Вторая строка выполняется при втором чтении файла.
Вот иллюстрация метода транспонирования -линейного фильтра -транспонирования . Возможно, это не подходит для вашего (большого файла ), но может быть полезным для других:
$ cat file
F G F H H
G F F F A
F G F F F
F F F T F
, затем
$ rs -T < file | perl -alne 'print unless (grep { $_ eq "F" } @F) > 3' | rs -T
F G H H
G F F A
F G F F
F F T F
Попытался с приведенным ниже сценарием, все работает нормально
for ((i=1;i<=5;i++)); do c=`awk -v i="$i" '{print $i}' o.txt|awk '$1=="F" {print $0}'| sed -n '/F/{;=;p}'| sed "N;s/\n/ /g"| sort -k1 -rn|sed -n '1p'| awk '{print $1}'`; if [[ $c -lt 3 ]]; then awk -v i="$i" '{print $i}' o.txt >file_$i; fi; done
paste file_*
выход
G H H
F F A
G F F
F T F