Как найти дубликат строк во многих больших файлах?

Рыночные силы.

Специально для Linux гораздо больше программ, чем для * BSD. Большая часть исходного кода программного обеспечения достаточно переносима, чтобы его можно было скомпилировать на обоих, но многие производители программного обеспечения, которые поставляют двоичные файлы Linux, не заботятся о том, чтобы сделать это для BSD, поскольку они имеют меньшую долю рынка, чем Linux по всем направлениям. ¹

Если часть программного обеспечения доступна только в двоичной форме для другой ОС, эмуляция ABI - это один из способов заставить его работать, что и делают BSD.²

Когда-то давно, когда x86 Unix занимала большинство рынка по сравнению с Linux, в Linux была добавлена ​​функция iBCS , позволяющая запускать двоичные файлы, созданные для SCO Unix и тому подобное. Интерес к этой функции снизился по мере увеличения рыночной доли Linux, так что во время серии разработок Linux 2.3 было позволено прийти в упадок .3 Судебные процессы SCO помогли вывести эту функцию из Linux. , но я считаю, что это вторично по сравнению с потерей рыночной силы, которая породила эту функцию.

Нет никаких технических причин, по которым Linux не смог бы когда-нибудь получить функцию, подобную iBCS, для запуска двоичных файлов BSD, но это маловероятно, если рыночные позиции BSD и Linux по какой-то причине не изменятся.

Сегодня такая вещь мало востребована. Сколько вам известно двоичных программ для BSD, которые также не созданы для Linux? Должны быть некоторые, но я предполагаю, что большинство из них предназначены для встроенных BSD, таких как Junos . Такая функция не будет создана, если она не позволяет запускать в Linux важный набор программ, которые иначе не запустились бы.


Сноски:

  1. Я не считаю OS X здесь BSD , поскольку это отдельная проблема двоичной совместимости. FreeBSD, OpenBSD и NetBSD используют ELF на x86, тогда как OS X использует совершенно другой исполняемый формат . Динамическое связывание также сильно отличается в OS X от традиционных x86 BSD.

    См. этот вопрос для получения дополнительной информации о двоичной совместимости Linux и OS X.

  2. FreeBSD ; OpenBSD ; NetBSD

  3. Как и в случае некоторых видов акул , программа, которая перестает двигаться вперед, умирает. Мы называем это явление гнилью , а не удушьем, когда оно происходит с программным обеспечением, но причина и следствие те же.

  4. Контраст NDISwrapper ,что позволяет Linux запускать только двоичные драйверы сетевых карт, написанные для Windows XP. Выявлена ​​потребность, и потребность удовлетворена. Где это нужно для запуска двоичных файлов, предназначенных только для BSD?

8
12.02.2018, 19:10
1 ответ

comm — еще один инструмент для такого рода задач, с той лишь оговоркой, что для него требуются предварительно отсортированные источники данных. <(...)синтаксис доступен в большинстве современных оболочек.

# suppress common lines
comm -3 <(echo "1\n2") <(echo "3\n1"| sort)
2
       3


# display common lines
comm -12 <(echo "1\n2") <(echo "1\n3") 
1
0
06.05.2021, 07:27

Теги

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