grep -of file1 file2|xargs -I {} grep -o "{}" file3
Это начинается с того, что вводится файл file1 и построчно вводится в file2, возвращая точный совпадающий текст, если таковой имеется. Затем результаты, если таковые имеются, передаются в файл3 строка за строкой, снова возвращая только согласованный текст.
Это довольно сложно рассмотреть. Для начала:
sh
, которая реализует определенный язык оболочки. В любой данной реальной системе sh
фактически будет одной из реальных оболочек, таких как оболочка Z, оболочка Almquist, оболочка Korn, оболочка Bourne Again и так далее; обычно распознает, что он был вызван по имени sh
и работает в режиме POSIX . #!/bin/sh
в качестве своего интерпретатора, должны были не полагаться на так -, называемые башизмами , и, наоборот, сценарии, которые действительно полагались на башизмы, должны были явно указывать оболочку Bourne Again в качестве своего интерпретатора, а не sh
. Удалять скорлупу довольно просто. Один удаляет такие пакеты, как ash
, bash
, posh
, mksh
, pdksh
, tcsh
, dash
и т. д.; с помощью инструмента управления пакетами, такого как aptitude
. Сложность заключается в том, что два из них помечены как «необходимые» — dash
и bash
— а это означает, что другие пакеты могут предполагать их присутствие без явного объявления зависимости от них, и удалить -нетривиально. их, так как менеджер пакетов намеренно потребует от вас дополнительных действий, чтобы подтвердить, что вы действительно хотите их удалить.
Беда приходит с последствиями этого.
#!/bin/bash
интерпретаторами скриптов. Такие скрипты не будут работать, если удалить оболочку Bourne Again, даже если останется оболочка Debian Almquist. system()
или явно execvpe()
утилиты sh
. В результате:
rc
, которые не смогут sh
интерпретировать их. Запустите systemctl list-unitsВсе службы, которые вы видите с «LSB :» или «SYSV :» в начале их описания, нуждаются в интерпретаторе оболочки для работы. Точно так же такие программы, как
rabbitmq-server
или mysqld_safe
, которые иногда (ab )используются в качестве служб, на самом деле являются сценариями оболочки. /lib/systemd/systemd-sysv-install
— это только один пример. Другие включают /usr/sbin/service
, /usr/sbin/invoke-rc.d
и даже /bin/fgrep
. rescue.service
, иemergency.service
(в версии systemd в Ubuntu 16 )используют /bin/sh
. /bin/sh
.Вики Убунту. /bin/sh
. Дебиан вики.