Поддерживает ли оболочка наборы? - PullRequest
1 голос
/ 06 сентября 2011

Поддерживают ли оболочки, такие как bash и ksh, операции над множествами (например, «объединение двух множеств»)? Я не могу найти учебник по этому вопросу с помощью Google.

Ответы [ 4 ]

4 голосов
/ 06 сентября 2011

А как насчет set-operations-in-unix-shell .

0 голосов
/ 30 января 2015

Я недавно написал программу под названием Setdown , которая выполняет операции Set из клима.

Она может выполнять операции над множествами, написав определение, подобное тому, которое вы написали бы в Makefile:1005 *

someUnion: "file-1.txt" \/ "file-2.txt"
someIntersection: "file-1.txt" /\ "file-2.txt"
someDifference: someUnion - someIntersection

Это довольно круто, и вы должны это проверить.Лично я не рекомендую пост "Операции над множествами в оболочке Unix".Он не будет работать хорошо, когда вам действительно нужно выполнить много операций над множествами или если у вас есть какие-либо операции над множествами, зависящие друг от друга..

0 голосов
/ 06 сентября 2011

Нет, bash / ksh не поддерживает операции с выделенными наборами.Вам придется программировать самостоятельно, если вы настаиваете на использовании оболочек ... как то, что сделала ссылка, предоставленная xdazz.Если вы хотите полностью выделенные операции над множествами (также с точки зрения производительности), используйте настоящий язык программирования (например, Python, Ruby и т. Д.)

0 голосов
/ 06 сентября 2011

Насколько я знаю, оболочка POSIX (включая bash) не поддерживает работу с множествами. Но вы можете создать свой собственный, например, используя ассоциативный массив bash (bash 4.0 и выше).

...