Сценарий Roadwarrior strongswan — настройка Iphone

На самом деле не один -лайнер, но вы можете сделать это одним вызовомsed:

sed -e '
   /pat/{s//repl/g;h;}
   $!b
   G
   s/\n..*//;t
   s/$/repl/
' yourfile

Н.Б. :Я намеренно использовал patи replдля шаблона и замены соответственно, а не переменные оболочки, как вы сделали. В основном по двум основным причинам они будут мешать потоку кода sed + для корректности нам нужно цитировать оба, и при этом по-разному, чтобы они работали. Эту работу я оставляю вам.

Поток :Скажем, у файла никогда не было /pat/, тогда все строки переносятся в стандартный вывод командой $!b, а последняя строка при добавлении G просто видит пустое удержание поэтому tне используется, и у нас есть операция добавления.

Когда мы видим линию /pat/, это значит, что она s/// -выделена и отмечена область удержания. если это не последняя строка, мы просто выходим на стандартный вывод. Для eof мы выполняем проверку удержания, и поскольку оно не -пусто (, предполагая, что replравно NONEMPTY, тестовый путь будет выбран после удаления удержания из пространства шаблонов.


Perlобеспечивает ясность соответствия слова намерения -для слова -в коде:

perl -lne '$a += s/pat/repl/g,print}{print q[repl] unless $a'

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

А что касается предоставления информации о шаблоне/замене через переменные, мы можем сделать это:

WHAT_I_WANT='my line of text = something'
WHAT_TO_REPLACE='my line of text =.*'
FILE_TO_EDIT=conf_file.conf

perl -li -sn -e '
        $a += s/$pat/$repl/g,print}{print $repl unless $a
' -- -pat="$WHAT_I_WANT" -repl="$WHAT_TO_REPLACE" -- "$FILE_TO_EDIT"
0
29.09.2019, 19:08
1 ответ

SubjectAlternativeName (SAN ), настроенный для клиентского сертификата, может быть не идеальным (, по крайней мере, если Client_Keyбуквально соответствует тому, что вы использовали ). Лучше сделайте это адресом электронной почты или доменным именем. Затем настройте этот идентификатор как Локальный идентификатор на клиенте, чтобы он не использовал свой IP-адрес, что и происходит в настоящее время :

.
Sep 29 16:18:45 raspberrypi charon: 13[CFG] looking for peer configs matching 192.168.123.101[myDNSNAME]...94.109.49.167[10.218.49.167]
0
28.01.2020, 03:14

Теги

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