Есть ли способ узнать, кто [включая удаленных пользователей] может получить доступ к определенному файлу / папке?

Вы можете разделить файлы на основе содержимого строки с помощью csplit . Это команда POSIX , но версия GNU имеет несколько полезных расширений. Используя GNU csplit (невстроенный Linux, Cygwin), вот как разделить файл на каждую строку, которая начинается с :

csplit -f 'virtualhost-' -b '%03d.conf' all-sites.conf '/^ *

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

csplit -f 'virtualhost-' all-sites.conf '/^ *

В любом случае первый файл содержит все до первой строки ; он может быть пустым. Если есть комментарии непосредственно перед строкой , они не будут прикреплены к следующему разделу ; csplit недостаточно умен для этого, не говоря уже о том, чтобы выяснить, применяется ли комментарий к предыдущему или последующему контенту.

Если вы хотите сделать что-то более интересное, например называть выходные файлы после содержимого, вы можете использовать awk. Утилита csplit иногда бывает удобной, но awk может делать все, что может, без особого труда.

awk '
  BEGIN {output_file = "preamble.conf"}
  /^ *]/ {
      output_file = "virtualhost-" sub(/ *[:>].*/, "", sub(/^ *output_file}
' all-sites.conf

0
04.09.2016, 00:37
0 ответов

Теги

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