Как заменить и сгенерировать номер строки

Напишите, например:

server 10.8.0.0 255.255.255.0

Здесь вы определяете подсеть для своей сети OpenVPN. Где-то не найдешь, выбираешь. Вышеупомянутое будет обслуживать подсеть / 24 , IP-адрес сервера vpn будет 10.8.0.1 , первого клиента 10.8.0.2 . Дополнительную информацию можно найти на странице руководства . Эта директива будет расширяться, как показано на странице руководства:

- маска сети сервера ['nopool'] Вспомогательная директива, разработанная для упрощения настройки режима сервера OpenVPN. Эта директива настроит сервер OpenVPN, который будет выделять адреса клиентам вне данной сети / сетевой маски. Сам сервер примет адрес ".1" данной сети для использования в качестве конечной точки на стороне сервера для локального интерфейса TUN / TAP. Например, - сервер 10.8.0.0 255.255.255.0 расширяется следующим образом:

  режим сервера 
tls-server 
push "топология [топология ] "
 
if dev tun AND (топология == net30 OR топология == p2p): 
ifconfig 10.8.0.1 10.8.0.2 
if! Nopool: { {1}} ifconfig-pool 10.8.0.4 10.8.0.251 
route 10.8.0.0 255.255.255.0 
if client-to-client: 
push "route 10.8.0.0 255.255. 255.0 "
else if topology == net30: 
push" route 10.8.0.1 "
 
, если разработчик коснется OR (dev tun AND топология == подсеть): 
ifconfig 10.8.0.1 255.255.255.0 
if! Nopool: 
ifconfig-pool 10.8.0.2 10.8.0.254 255.255.255.0 
push "route-gateway 10.8.0.1" 
, если route-gateway не задан: 
route-gateway 10.8.0.2 
 

Чтобы передать конфигурацию DNS-сервера своим клиентам, напишите, например:

push "dhcp-option DNS 10.8.0.1"

Или, например, если вы решите, что хотите, чтобы ваши клиенты использовали DNS-серверы Google:

push "dhcp-option DNS 8.8.8.8"
push "dhcp-option DNS 8.8.4.4"

Базовый пример файла server.conf без какой-либо специальной конфигурации будет выглядеть так (я удалил все необязательные директивы, которые не должны требоваться при очень простой настройке):

port 1194
proto udp
dev tun
ca /etc/openvpn/easy-rsa/2.0/keys/ca.crt
cert /etc/openvpn/easy-rsa/2.0/keys/server.crt
key /etc/openvpn/easy-rsa/2.0/keys/server.key
dh /etc/openvpn/easy-rsa/2.0/keys/dh2048.pem
server 10.8.0.0 255.255.255.0
keepalive 10 60
comp-lzo
persist-key
persist-tun
status server-status.log
verb 3

1
06.04.2018, 14:22
4 ответа

попробуй

awk '{ printf "%05d%s\n",NR,substr($1,6)}' input_file > output_file

где

  • printf "%05d".. NRвыведет номер строки(NR(Номер записи )), дополненный 0
  • substr($1,6)извлечет подстроку первого аргумента$1(), начиная с 6
1
28.04.2021, 23:48

Другой awkподход.

awk -F'[0-9]+' '{printf("%05d%s\n",NR,$2)}' infile >newfile
3
28.04.2021, 23:48

Использование sedдля удаления существующих цифр в начале каждой строки и nlдля нумерации строк особым образом:

$ sed 's/^[0-9]*//' file | nl -n rz -s '' -w 5
00001abc
00002def
00003ghi
00004jkl
00005mno
00006pqr
00007stu
00008vwx
00009yza
00010bcd

Опция nlзапрашивает нулевые -заполненные числа (-n rz, что также правильно -выравнивает числа, но здесь это неважно )без разделителя между номерами строк и данными (-s ''). Числа состоят из пяти цифр(-w 5).

nl— это утилита POSIX .

1
28.04.2021, 23:48

С ш

while read a;do i=$((i+1));printf "%05d%s\n" $i "${a##*[0-9]}";done < infile > outfile

замена на месте

printf '%s\n' $(while read a;do i=$((i+1));printf "%05d%s\n" $i "${a##*[0-9]}";done < infile) > infile
0
28.04.2021, 23:48

Теги

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