/
, .
, *
, [
и ]
.
Например, я использую
. Сделайте следующее:
ed -s /etc/ssh/sshd_config << EOF
g/^#*PermitRootLogin/s/^//
g/^##*PermitRootLogin...../s///
1,$s/^\(#*PermitRootLogin\).*/\1 no/
w
q
EOF
Что это делает?
Находит каждую строку, которая
PermitRootLogin
, или#
,
за которым немедленно следует PermitRootLogin
и не более четырех других символов,и изменяет его на PermitRootLogin no
,
оставляя любой #
символ(ы) в начале строки.
А? Что? Почему он это делает?
Задача состояла в том, чтобы изменить любую из следующих строк:
PermitRootLogin yes
PermitRootLogin no
PermitRootLogin Быстрая коричневая лиса перепрыгивает через ленивую собаку.
#PermitRootLogin yes
#PermitRootLogin no
но не следующие строки:
#В этом разделе мы устанавливаем
#PermitRootLogin на "возможно",
#потому что мы еще не решили.
Возможно, это неудачный побочный эффект такого дизайна. что следующие строки:
##PermitRootLogin yes
##PermitRootLogin ???
будут изменены, а следующие строки:
PermitRootLogin yes
# PermitRootLogin yes
#PermitRootLogin yes
не будут.
g/^#*PermitRootLogin/s/^//
находит все строки, которые начинаются с PermitRootLogin
,
или начинаются с одного или более символов #
,
за которыми сразу же следует PermitRootLogin
,
и "помечает" их строкой
(вставляет ее в начало строки).
Это повлияет на строки PermitRootLogin
, которые закомментированы,
при условии, что нет пробелов (или чего-либо еще)
до или после символа #
. g/^##*PermitRootLogin...../s///
находит все помеченные строки, в начале которых есть хотя бы один #
и не менее пяти символов после PermitRootLogin
, и удаляет метку.
Это снимает метки с закомментированных строк PermitRootLogin
.
в которых есть что-то длиннее, чем yes
.
(Конечно, вы можете изменить количество
символов, если хотите.)1,$s/^\(#*PermitRootLogin\).*/\1 no/
находит все строки, которые все еще помечены, удаляет метку,
перехватывает PermitRootLogin
и все предшествующие #
символы,
сохраняет их и заменяет остальную часть строки на no
. printf
. Я немного запутался в вашем вопросе.
Если вы хотите узнать подробности о том, как устройства регистрируются в фабрике, вам следует прочитать протокол FC -и спецификации фабрики FC -и начать с раздела RSCN -Зарегистрированное изменение состояния. Уведомление. В твоем случае,эти уведомления будут отправляться, когда вы подключаете или отключаете устройство от порта коммутатора, уведомляя всех участников зоны структуры -об изменениях.
Если вам нужно проверить конфигурацию зоны и посмотреть, какие устройства могут получить доступ к определенной WWN, у вас есть несколько вариантов в зависимости от различных обстоятельств. Например, на коммутаторе Brocade можно запустить :nszonemember <put-your-device-WWN-here>
, чтобы запросить сервер имен фабрики обо всех других онлайн-устройствах, зонированных с заданным WWN.