Об/мин и архивы deb довольно хороши и удобны, но возможности - Вы, не получит официальное ядро тот путь, но исправленная версия; измененные источники ядер поставки большинства дистрибутивов по многим причинам (и может включать бэкпорты bugfix, дополнительные двоичные микропрограммные блобы, код, объединенный от третьих лиц, и так далее).
Я настоятельно рекомендую, чтобы Вы получили исходное ядро tarballs на официальном сайте и сохранить некоторую пропускную способность и время, можно получить большинство незначительных выпусков через патчи.
Я предполагаю, что ваши файлы CSV
являются чем-то вроде:
123123,,
222333,,
111222,Jones,Sally
111333,Johnson,Roger
123123,Doe,John
444555,Richardson,George
222333,Smith,Jane
223456,Alexander,Philip
Вы можете попробовать использовать команду присоединиться к команде
, например:
# join -t, -v 2 <(sort file1) <(sort file2)
111222,Jones,Sally
111333,Johnson,Roger
223456,Alexander,Philip
444555,Richardson,George
Больше информации о команде можно найти здесь: Человек присоединяется к
join [OPTION]... FILE1 FILE2
-t CHAR
use CHAR as input and output field separator
-v FILENUM
like -a FILENUM, but suppress joined output lines
Вы также можете попробовать следующий раствор Python2:
#!/usr/bin/env python2
import csv
with open('file_1') as f1:
file_1_list = [line[0] for line in csv.reader(f1)]
with open('file_2') as f2:
for line in csv.reader(f2):
if line[0] not in file_1_list:
print ' '.join(line)
Попробуйте следующее:
awk 'BEGIN{FS=","};FNR==NR{a[$1];next};!($1 in a)' file1 file2 > file3
Добавьте -F ','
, который сообщает awk о наличии разделителя запятой или, если вы используете |
. используйте -F '|'
, чтобы ваш скрипт теперь выглядел так
awk -F',' 'FNR==NR{a[$1];next};!($1 in a)' file1 file2 > file3