Как я могу сравнить два файла на основе значения первого столбца?

Вообще говоря, выходить из системы уничтожает приложения, которые подключены к средствам взаимодействия с пользователем. Когда Вы зарегистрированы в текстовый терминал (локально или удаленно), все приложения, которые подключены к тому терминалу, уничтожаются, когда Вы выходите из системы (непосредственно ядром, или косвенно оболочкой). Когда Вы зарегистрированы в графическую среду, все приложения, которые подключены к X-серверу, уничтожаются, когда Вы выходите из системы (или более точно, соединение с X-сервером разъединено, который заставляет большинство приложений выходить).

Выходить из системы не уничтожает все процессы, запущенные пользователем. Пользователь мог хотеть оставить программы, работающие в фоновом режиме, или мог быть зарегистрирован в несколько сессий.

Приложения такой как ssh-agent и gpg-agent не являются интерактивными, таким образом, они не подключены ни к какому терминальному серверу или X-серверу. Нормальная установка принимает меры, чтобы они были уничтожены другими средствами. Часто агент является родительским процессом целой сессии: сценарии запуска сессии располагают выполнить что-то как ssh-agent $SHELL или ssh-agent $SESSION_MANAGER. Тот путь, когда дочерний процесс, который является выходами лидера сессии, агент также, выходит (потому что это - то, как агент разработан). Если агент запускается по-другому, это до менеджера сеансов, чтобы расположить уничтожить его.

Когда Вы экспериментировали при следовании тому учебному руководству, Вы очевидно запустили много процессов агента способами, которыми не ожидал учебный писатель, и они не умерли с Вашей сессией. Можно уничтожить тех, Вы не используете. После того как Вы достигли стабильной установки, проверьте, что агент действительно становится уничтоженным, когда Вы выходите из системы. (Если Вы не предпочитаете выполнять единственный агент и иметь его работающий постоянно, который может быть разумным выбором на персональной машине.)

3
05.07.2014, 14:10
2 ответа

Попробуйте следующее:

$ awk 'FNR==NR{a[$1]=$0;next};{print a[$1]}' file2 file1
5
27.01.2020, 21:14

Это будет очень медленно для больших файлов, но вы можете сделать

$ while read a rest; do grep -w $a file2; done < file1
aaa a m
bbb m a
ccc m m

Более быстрым способом, в Perl:

$ cat file1 | perl -lane '$k{$F[0]}=$_;
                END{
                  open(A,"file1");
                  while(<A>){/^(.+?)\s/; print $k{$1}}
               }' file2
aaa a m
bbb m a
ccc m m
1
27.01.2020, 21:14

Теги

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