Использование расширенного регулярного выражения:
$ grep -E '[[:alnum:]_]+[[:digit:]]+(\[[^]]+\])?\.knownKeyWord' <file
anything1.knownKeyWord
anything2.knownKeyWord
anything3[1].knownKeyWord
Это позволит извлечь любую строку, содержащую строку в формате
XXXNNN[YYY].knownKeyWord
или
XXXNNN.knownKeyWord
где XXX
— любая не-пустая буквенно-цифровая строка (, которая может также включать _
), NNN
— любая строка из (одной или нескольких )цифр, а YYY
— ничего, кроме ]
.
Используйте grep
с -x
, если совпадения должны быть полными строками . Используйте -w
, если совпадения должны быть полными слов (, то есть не как подстрока чего-то другого ).
Простое использование sed
, чтобы показать, чему соответствует каждая часть регулярного выражения:
$ sed -E 's/([[:alnum:]_]+)([[:digit:]]+)(\[[^]]+\])?(\.knownKeyWord)/<\1><\2><\3><\4>/' <file
<anything><1><><.knownKeyWord>
<anything><2><><.knownKeyWord>
<anything><3><[1]><.knownKeyWord>
На сервере NodeJS переопределить маршрут по умолчанию, чтобы он указывал на плавающий IP-адрес192.168.10.100
$ sudo ip route del 0/0
$ sudo route add default gw 192.168.10.100
На обоих маршрутизаторахсделать несколько правил NAT:
$ sudo iptables -t nat -F
$ sudo iptables -t mangle -F
$ sudo iptables -t nat -A POSTROUTING -s 192.168.10.0/24 -j SNAT --to 192.168.10.100
$ sudo iptables -t nat -A PREROUTING -d 192.168.10.100 -p tcp --dport 3869 -j DNAT --to 192.168.10.40