Вот как это сделать внутриPOSIX sed
:
$ sed -e '
s|http://|\
&|2;P;D
' input.file
Это помещает новую строку перед второй http://
подстрокой, которая будет найдена в текущей строке. Затем мы выполняем действие «print upto 1st newline, chop upto 1st newline, rinse & repeat
» до тех пор, пока не закончится пространство шаблона. Когда остается только 1 http ://, подстановка ничего не делает, и это последнее действие печати и удаления для текущей записи.
Вы можете использовать Perl
массивы для выполнения задания:
perl -F'http:\/\/' -lane 'print "http://$_" for @F[1..$#F]' input.file
Первое поле $F[0]
пусто, поэтому при печати оно пропускается.
postgresql
по умолчанию слушает только на локальном хосте(127.0.0.1 и::1). Чтобы изменить это поведение, вы должны вручную настроить другие адреса прослушивания в postgresql.conf
, обычно находящиеся в $PGDATA
.
Чтобы сделать postgres, например. чтобы прослушивать также локальный адрес 10.0.10.156, вам нужно будет указать listen_addresses
следующим образом.
listen_addresses = 'localhost, 10.0.10.156'
Чтобы заставить postgres прослушивать все интерфейсы, вы также можете использовать подстановочный знак.
listen_addresses = '*'
После этого изменения необходимо перезапустить postgres. Также рекомендую проверить, соответствует ли результат вашим ожиданиям.
Вывод lsof
с прослушиванием postgres на локальном хосте и 10.0.10.156.
# lsof -n -i:5432
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
postgres 7893 postgres 3u IPv6 55868 0t0 TCP [::1]:postgres (LISTEN)
postgres 7893 postgres 4u IPv4 55869 0t0 TCP 127.0.0.1:postgres (LISTEN)
postgres 7893 postgres 5u IPv4 55870 0t0 TCP 10.0.10.156:postgres (LISTEN)
Вывод lsof
с прослушиванием postgres на всех интерфейсах.
# lsof -n -i:5432
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
postgres 7527 postgres 3u IPv4 54903 0t0 TCP *:postgres (LISTEN)
postgres 7527 postgres 4u IPv6 54904 0t0 TCP *:postgres (LISTEN)