Удалить строки, соответствующие первым 7 совпадениям строки (в диапазоне шаблонов)

Согласно документам KVM, невозможно использовать мост с беспроводной сетевой картой. Я не знаю, почему, хотя я использовал гостевой мост на VirtualBox.

Я потратил несколько часов на то, чтобы выяснить, как подключить гостя к беспроводной сети хоста, и обнаружил, что проще всего это сделать с помощью TAP-устройства. Единственным недостатком этого метода является то, что вы не можете использовать DHCP на гостевой машине, и вам нужно вручную указать IP-адрес из подсети беспроводной сети (, что может вызвать конфликты IP-адресов или неудобства в случае развертывания большого количества виртуальных машин ).

Вот шаги для подключения гостя к беспроводной сети хоста с помощью TAP-устройства:

0/ Включить маршрутизацию IPv4 для ядра Linux

sudo sh -c "echo 1 > /proc/sys/net/ipv4/ip_forward"

1/ Создайте кран-устройство с именем tap0, доступное для пользователя guest (Замените своим именем пользователя )без sudo:

sudo ip tuntap add mode tap tap0 user guest

2/ Назначьте IP-адрес устройству tap0 (Он не обязательно должен принадлежать подсети беспроводной сети):

sudo ip addr add 10.10.10.10/24 dev tap0
sudo ip link set tap0 up

3/ Используйте parprouted(. Возможно, вам придется установить его )для реализации прокси-арп-моста, который позволяет соединить гостевой Ethernet за беспроводным сетевым адаптером хоста.

sudo parprouted wlan0 tap0

(Замените wlan0 на беспроводной интерфейс вашего хоста)

4/ Добавление некоторых записей в таблицы маршрутизации, чтобы позволить пакетам проходить через концы ответвительного устройства:

sudo iptables -A INPUT -i tap0 -j ACCEPT
sudo iptables -A FORWARD -i tap0 -j ACCEPT
sudo iptables -A FORWARD -o tap0 -j ACCEPT

На госте назначьте статический IP-адрес из подсети беспроводной сети хоста. Например, если ваш wlan0 находится на 192.168.1.0/24, то гость можно настроить с помощью

sudo ip addr add 192.168.1.30/24 dev eth0

(eth0 — сетевая карта вашего гостя)

или навсегда в /etc/network/interfaces с:

auto eth0
iface eth0 inet static
  address 192.168.1.30
  netmask 255.255.255.0
  network 192.168.1.0
  broadcast 192.168.1.255
  gateway 192.168.1.25

Запустите гостевую систему с помощью:

kvm -hda guest.img -m 512 -net nic -net tap,ifname=tap0,script=no

Теперь проверка связи между всеми машинами, подключенными к вашей беспроводной сети, и гостями.

1
17.01.2021, 18:25
3 ответа
awk '/string1/{c=7}; c<1; {c-=gsub(/string2/, "&")}' file

cизначально равно 0 и устанавливается равным 7, если string1найдено. Строка печатается всякий раз, когда c<1.

Функция gsubвозвращает количество раз, когда string2встречается в каждой строке. Счетчик cуменьшается на это значение.

3
18.03.2021, 22:36
sed -e:t -e'/string1/!b' -e'/\(.*string2\)\{7\}/d;N;bt'
4
18.03.2021, 22:36

Перл

perl -ne '
  if (my $e = /string1/... s/string2/$&/g >= 7) {
      $_.= $e =~ /E0/ ? next : <>, redo;
  }
  print;
' file

Позикс-сед:

sed -ne '
  /string1/!{p;d;}
  :loop
    n
    /string2/H
    g;s//&/7;t
  b loop
' file

Выход:

whatever
anything else foo string2
xpto
string2
foo whatever
0
18.03.2021, 22:36

Теги

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