Нужны идентичные строки из файла2, которые присутствуют в файле1

На самом деле все зависит от версии date, которую вы используете.

GNU dateожидает, что дата ввода будет yy[y]*mmddкак в20170713(13 июля 2017 )или1000901123(23 ноября 100090, да, год faaaar в будущем; -)). Он надежно печатает даты до 10 дикситов, не знаю, что он делает в последующие годы... год, когда 2140000000работает, год 2150000000не работает в моей системе.

Вы также можете использовать человеческие выражения, такие как date -d 'yesterday', опять же, не переносимые.

Используйте sed, чтобы преобразовать дату в yyyymmdd.

0
22.03.2019, 10:49
2 ответа

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

Вот решение

sort -o file1 file1 #sort and save content of file1
sort -o file2 file2 #sort and save content of file2
join file1 file2
0
28.04.2021, 23:35

Вы ошибаетесь.

Единственным свойством , которое находится в файловом дескрипторе -и которое можно изменить с помощью fcntl(F_SETFD), является FD_CLOEXECзакрытие -флага -exec.

Все остальные свойства относятся либо к файловому объекту («описанию открытого файла» в жаргоне POSIX --, которое можно изменить с помощью fcntl(F_SETFL)), либо к индексному узлу.

Установка флага отсутствия блокировки -с помощью fcntl(F_SETFL, | O_NONBLOCK)или с помощью ioctl(FIONBIO)повлияет на все файловые дескрипторы, которые ссылаются на этот открытый файл. Также нет способа сделать файл неблокирующим -только для чтения или записи.

Это далеко от идеала --вы также можете обратиться к этому вопросам и ответам на StackOverflow, особенно к ссылке на lkml обсуждение о неудачной попытке как-то исправить.

Обратите внимание, что обычные файлы в основном не -блокируют, --a poll(2)или select(2)на них возвращаются немедленно.

Если вас интересуют только сокеты, вы должны использовать send(2)или recv(2)с флагом MSG_DONTWAITвместо read(2)или write(2). Вопреки тому, что вы говорите, дескриптор файла сокета может использоваться совместно между процессами и независимо от его семейства/протокола/параметров. И это также относится к прослушивающему сокету.

-121 ---234860 ​​-

Использование приведенной ниже команды проверено и работает нормально

команда

правин@правин :~$awk 'NR==FNR{a[$1];next}($1 in a){print $0}' file1 file2

выход

правин@правин :~$awk 'NR==FNR{a[$1];next}($1 in a){print $0}' file1 file2

99373        dhdhdhdhd, 3838 dheueie,aaaa

133838000  rrtyusbjsjs,382 djdjdjsusu
0
28.04.2021, 23:35

Теги

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