Удалите строку выше, если найдено ключевое слово.

Я не уверен, что правильно понял вашу диаграмму. :Все, что вам нужно сделать, это установить маршрут на сервер A так, чтобы пакеты, поступающие из любого из двух контейнеров, направлялись на сервер B, это правильно?

В любом случае, не используйте iptablesдля маршрутизации. (Это меня раздражает, по какой-то причине люди все время пытаются использовать iptablesдля маршрутизации. )Существуют альтернативы, например. политика маршрутизации.

Итак, в вашем случае что-то вроде

ip route add table 250 172.16.0.1/16 dev vpn scope link
ip route add table 250 default via 172.16.0.2
ip rule add from 172.16.0.3 table 250
ip rule add from 172.16.0.4 table 250

(untested )должно помочь. Существует множество онлайн-руководств по маршрутизации политик.

0
13.05.2020, 09:57
2 ответа
$ sed '$!N;/\n  Mem/p;D' file
Amit:
  Mem  30  40 50
Sumit:
  Mem  50 70 80
Nishant:
  Mem  90 20 45
  • $!N:Для каждой строки, которая не является последней строкой, добавьте следующую строку в буфер с разделителем новой строки в -между ними.

  • /\n  Mem/p:Если теперь буфер содержит символ новой строки, за которым сразу следует строка  Mem(два пробела и Mem), то напечатайте буфер. Вы также можете использовать [[:blank:]]*вместо двух пробелов, чтобы разрешить любое количество пробелов или табуляций в начале строк Mem.

  • D:Удалить данные в буфере до первого символа новой строки включительно и начать следующий цикл.

2
28.04.2021, 23:14

Это будет общий код. Только присутствующая память напечатает предыдущую строку

awk '{a[++i]=$0}/Mem/{for(x=NR-1;x<=NR;x++)print a[x]}' file

выход

Amit:   
  Mem  30  40 50  
Sumit:  
  Mem  50 70 80   
Nishant:  
  Mem  90 20 45    
0
28.04.2021, 23:14

Теги

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