Firejail: только позвольте программу доступа к localhost

С bash, zsh и некоторыми реализациями ksh:

comm -12 <(tr -s '[:space:]' '[\n*]' < a.txt | sort -u) \
         <(tr -s '[:space:]' '[\n*]' < b.txt | sort -u)

Там, word - это последовательность символов без пробелов (имейте в виду, что в GNU tr это не работает с многобайтовыми пробелами).

comm находит общие строки между двумя отсортированными файлами. Без опций выводит 3 столбца: строки только в файле1, строки только в файле2 и строки, общие для обоих. Вы добавляете -1, -2, -.3 для удаления соответствующих столбцов из вывода. Таким образом, comm -12 оставляет только третий столбец (общие строки).

tr -s '[:space:]' '[\n*]' transliterate any sequence of characters of class space into newlines, to put every word on its own line.

sort -u сортирует и удаляет дубликаты из вывода tr.

Подстановка процесса <(...) передает выходы команд tr|sort в comm.


С zsh:

w1=($(<a.txt)) w2=($(<b.txt))
print -rl -- ${(u)${w1:*w2}}

Там word - это последовательность символов, отличных от пробела, табуляции, нуля и новой строки (со значением по умолчанию $IFS).

$( - это оптимизированная версия $(cat a.txt), где zsh читает содержимое файла самостоятельно, не вызывая cat, поскольку оно не заключено в кавычки, оно подвергается разделению слов (но не globbing, в отличие от других оболочек).

Итак, w1 и w2 - это массивы, содержащие все слова в a.txt и b.txt.

${w1:*w2} - это оператор zsh, который дает пересечение двух массивов (элементы, общие для обоих). (u) - это флаг расширения параметров, который сохраняет уникальные элементы (удаляет дубликаты).

print -rl печатает каждый аргумент по одному в строке.

3
27.10.2018, 18:56
1 ответ

Я бы использовал вариант и вроде:

firejail --interface=eth0.vlan100 --ip=someipaddress someprogram

Support for ipvlan driver was introduced in Linux kernel 3.19.

Найдено здесь:man firejail | Пожарная тюрьма

2
27.01.2020, 21:25

Теги

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