Я также столкнулся с той же проблемой. Всякий раз, когда я пытался отключиться от VPN (в моем случае это был PPTP) сервер, KDE Network Manager занимает 100% процессор. Раньше я убивал KDE4 из «Системного монитора». Но даже получение там занимает много времени, потому что вся система ведет себя медленно к любой активности.
Нашел немало ошибок, сообщаемых для этой проблемы. Тот, который я упоминаю здесь, даст нам более подробную информацию о проблеме: https://bugs.kde.org/show_bug.cgi?id=268038
Чтобы решить проблему, несколько дней назад у меня было проверить «предварительные обновления» с программных сокетов -> происхождение в Kpackagekit. Было установлено несколько обновлений, и проблема была исправлена.
Из вышеуказанного билета кажется, что обновления уже есть в обновлениях Kubuntu, и вам, вероятно, не нужно устанавливать эти предварительные обновления. Просто проверьте, доступно ли вам какое-либо обновление или нет.
В случае отсутствия доступного обновления из обычного канала, вы можете попробовать выполнить описанный выше процесс, как это было проверено мной. Но прежде чем приступать к рассмотрению, обратите внимание, что, насколько мне известно, предварительные обновления могут привести к другим проблемам. Поэтому перед установкой предварительных обновлений убедитесь в этом.
Классическим инструментом UNIX для этого является join:
NAME
join - join lines of two files on a common field
SYNOPSIS
join [OPTION]... FILE1 FILE2
DESCRIPTION
For each pair of input lines with identical join fields, write a line
to standard output. The default join field is the first, delimited by
blanks.
Однако join i) нуждается в том, чтобы его вход был отсортирован для работы, и ii) может иметь дело только с 2 файлами , Итак, вы можете сделать что-то уродливое и неэлегантное:
Сортируйте каждый файл во втором поле и сохраните его как новый файлsort -k2 file1 > sorted1
sort -k2 file2 > sorted2
sort -k2 file3 > sorted3
Присоедините файлы 1 и 2 к новому файлу, а затем присоединитесь к третьему $ join -j2 --nocheck-order sorted1 sorted2 > newfile
$ join -o 1.2,1.3,2.1,1.1 -1 1 -2 2 --nocheck-order newfile sorted3
10 3 9 Hac.2
1 33 23 Hhe.7
2 15 70 Hpyl.1
Используемые опции: -1 FIELD
join on this FIELD of file 1
-2 FIELD
join on this FIELD of file 2
-j FIELD
equivalent to '-1 FIELD -2 FIELD'
--nocheck-order
do not check that the input is correctly sorted
-o FORMAT
obey FORMAT while constructing output line
FORMAT is one or more comma or blank separated
specifications, each being 'FILENUM.FIELD' or '0'.
Таким образом, эта команда будет соединяться в первом поле первого файла и втором поле второго файла и будет печатать второе поле первого файла (1.2), затем третье поле первого файла (1.3), первое поле второго файла (2.1) и первое поле первого файла (1.1). В качестве альтернативы вы можете комбинировать целая вещь в одной славно сложной команде:
$ join -o 1.1,2.2,2.3,2.1 -1 2 -2 1 --nocheck-order <(sort -k2 file3) \
<(join -j2 --nocheck-order <(sort -k2 file1) <(sort -k2 file2))
9 10 3 Hac.2
23 1 33 Hhe.7
70 2 15 Hpyl.1
Если вам не нравится arcane command line-fu, вы всегда можете использовать небольшой скрипт:
[ f6]Это задание для join, которое может объединяться в общие поля двух файлов:
$ join -11 -22 -o1.2,1.3,2.1,0 <(join -j2 <(sort -k2,2 f1.txt) <(sort -k2,2 f2.txt)) <(sort -k2,2 f3.txt)
10 3 9 Hac.2
1 33 23 Hhe.7
2 15 70 Hpyl.1
Поскольку join принимает только два входных файла за раз, мы использовали замену процесса (<()), чтобы передать вывод join первых двух файлов с третьим.
С awk:
awk -F"\t" -v OFS="\t" '!(a[$2]){a[$2]=$1;next}
{a[$2]=a[$2]"\t"$1}
END{
for ( i in a) {
print a[i],i
}
}'
От: скрипт оболочки
- объединить некоторые файлы с разделителями табуляции - Unix & amp; Linux Stack Exchange Следующий скрипт должен выполнить внешнее соединение в столбце (поле) 1 всех файлов с разделителями табуляции, переданных в качестве аргументов. Он использует команду join, которая выполняет внешнее объединение в отсортированных файлах, по 2 файла за раз. Он будет присоединяться к каждой строке в файлах, включая строки заголовков. Если вы хотите, чтобы заголовки были исключены, измените две команды sort на то, что создает отсортированный файл, который их не дает.#!/bin/sh
if test $# -lt 2
then
echo usage: gjoin file1 file2 ...
exit 1
fi
sort -t $'\t' -k 1 "$1" > result
shift
for f in "$@"
do
sort -t $'\t' -k 1 "$f" > temp
join -1 1 -2 1 -t $'\t' result temp > newresult
mv newresult result
done
cat result
rm result temp
Если у вас установлена более старая оболочка, $'\t' не будет заменена вкладкой, поэтому вам нужно будет использовать «TAB», где вы помещаете литеральную вкладку между кавычками. Оптимизации возможны, если вместо /bin/sh вы можете использовать современную оболочку, такую как bash или ksh; например, строки sort -t $'\t' -k 1 "$f" > temp
join -1 1 -2 1 -t $'\t' result temp > newresult
можно заменить на join -1 1 -2 1 -t $'\t' result <(sort -t $'\t' -k 1 "$f") > newresult