Не уверен, что grep
является требованием для этого случая, но с помощью perl
вы можете сделать что-то подобное, чтобы удалить ненужные элементы:
perl -pe 's/, ?[2-9]\d*\|\d+:\d+//g; s/, ?\d+\|[2-9]\d*:\d+//g' /path/to/file.csv
Хорошие новости:Это работает!
Еще лучшие новости :Работает, как и ожидалось !!!
Плохие новости :Вы лжёте!!!;-)
Или у вас несколько проблем...
Я запросил дополнительную информацию в комментарии, но вы не объяснили, как вы ожидаете, что ваши пакеты будут маршрутизироваться. Это может показаться вам тривиальным, но вопрос на самом деле предназначался для намека на возможный ответ.
Вы должны знать о WPA и о том, как его настроить, так как иногда он работает. Мы видим, что это работает так, как ifconfig
говорит:
status: associated
Если WPA по какой-то причине не работает, вы увидите:
status: no carrier
Это волшебное заклинание(ifconfig_wlan0="WPA DHCP"
)в /etc/rc.conf
предписывает сетевой подсистеме запускать wpa _supplicant , а затем dhclient при работе с wlan0
. DHCP (dhclient )не сможет получить IP-адрес, если мы не связаны (wpa _запрашивающим )с беспроводной сетью.
Нет необходимости перезапускать все интерфейсы. Вы можете указать, какой из них вы хотите.
service netif restart wlan0
Чтобы отладить это, нам нужно запустить wpa_supplicant
в режиме отладки -d
с правильным -c
конфигурационным файлом:
wpa_supplicant -i wlan0 -d -c /etc/wpa_supplicant.conf
Если вы получили сообщение об ошибке, что программа уже запущена, сначала выключите wlan0
. Вы можете проверить это с помощью:
ps -ax | grep wpa
ps -ax | grep dhclient
Вы могли подумать:
service netif stop wlan0
Но это полностью удалит интерфейс. Вместо этого просто отключите его (, что остановит запрос WPA и DHCP ).
ifconfig wlan0 down
Когда вы закончите отладку, снова включите его с помощью:
ifconfig wlan0 up
Другой вариант — закомментировать ifconfig_wlan0="WPA DHCP"
и перезапустить интерфейс (или перезагрузить ). Затем вы можете запустить wpa _supplicant на переднем плане для отладки.
Однако я не думаю, что у вас есть проблемы с этим, и это ваша «ложь» (мы вернемся к этому ниже ). Однако, если у вас есть проблемы с медленным и не совсем стабильным интерфейсом, вы можете получить что-то вроде этого в/etc/rc.conf
ifconfig_wlan0="-ht WPA SYNCDHCP powersave"
Я использую это на своем ноутбуке с беспроводным адаптером iwn
, у которого периодически возникают проблемы с подключением.
-ht
отключает «Высокую пропускную способность (HT )», см. ifconfig . SYNCDHCP
заставляет запуск ждать, пока dhclient не вернется. Это гарантирует, что сеть готова, прежде чем продолжить.
Когда мы убедимся, что WPA работает правильно, мы можем отправиться в город dhclient
. Но я сомневаюсь, что проблема здесь.
netstat -4rn
показывает нам таблицу маршрутизации. Вы просто утверждаете, что это "не работает". Но вы ничего не делаете, чтобы проиллюстрировать, что не работает и чего вы ожидали. Затем мне нужно сделать кучу предположений.
Итак, мои предположения таковы:
А вот и ложь :Во втором сценарии вы утверждаете status: no carrier
без inet
с ifconfig
, но затем ваш netstat -r
показывает:
192.168.1.0/24 link#3 U wlan0
192.168.1.129 link#3 UHS lo0
Итак, стек маршрутизации знает о сети 192.168.1.0/24 на wlan0
, и у вас есть адрес (.129 )в этой сети.
И если мы посмотрим на netstat (1)флаги:
H RTF_HOST Host entry (net otherwise)
S RTF_STATIC Manually added
U RTF_UP Route usable
Нам прямо сообщают, что маршрут можно использовать. Это не соответствует ifconfig
без строки inet
.
WPA и DHCP работают асинхронно в фоновом режиме. Возможно, вы отправили ifconfig
слишком рано. С этой таблицей маршрутизации ваш ifconfig
будет выглядеть иначе. Следуйте /var/log/messages
, чтобы увидеть, что произойдет. И еще хуже, если вы используете service netif restart
при добавлении IP-адреса. Это приведет к перезапуску всех сетевых интерфейсов. Затем вы должны подождать, пока dhclient освободит адрес, а запросчик wpa _отключится. Затем он снова запустится -, нужно связать, а затем получить новый адрес. Это может занять довольно много времени! Если вы просто установите IP для re0
в /etc/rc.conf
, перезапустите этот интерфейс только с помощью service netif restart re0
.
Поскольку вы используете адреса RFC 1918 для re0
и статически назначаете 10.0.0.1 (, как правило, шлюз )этому интерфейсу, я предполагаю, что это локальная сеть, ни к чему не подключенная. еще. Возможно. Это будет просто менее распространенная конфигурация.
В первом примере вы установили DHCP. Сервер недоступен, поэтому адрес не задан. Мы не можем направить что-либо на этот интерфейс без адреса. Тогда «удача» заключается в том, что он отправляется через другой доступный интерфейс.
Во втором примере я работаю с предположением, что беспроводная сеть работает, и теперь вы определили 2 сети:
10.10.10.0/24
192.168.1.0/24
Я почти уверен, что вы сможете пропинговать эти адреса:
ping 127.0.0.1
ping 10.0.0.1
ping 192.168.1.129
ping 192.168.1.1
Но вы не показали нам, как вы тестируете, так что нам остается только гадать.Если какой-либо из них дает сбой, они дают нам ценную информацию для отладки.
Если 127.0.0.1 не работает, у вас проблема со стеком IP/брандмауэром. Если 10.0.0.1 не работает, это чаще всего связано с брандмауэром (, но не с pf, или я предполагаю, что здесь проблема с iptables ), так как это наш собственный адрес в нашей локальной сети. Если бы мы знали другой адрес 10.0.0.x (, так как у нас есть локальный адрес /24 ), мы могли бы подтвердить, что сеть работает. То же самое с 192.168.1.129 -это наш собственный адрес и должен работать. Действительно интересным является адрес 192.168.1.1, который должен быть нашим маршрутизатором в беспроводной сети. Если это работает, мы знаем, что также можем подключиться к этой сети. В редких случаях его можно настроить так, чтобы он не отвечал на запросы ping (ICMP ECHO ), но это бывает редко. И мое предположение, кроме того, что это работает.
Теперь давайте попробуем забавную часть -связь с остальным миром. Из того, что вы показали, я предполагаю, что вы получите:
$ ping 1.1.1.1
PING 1.1.1.1 (1.1.1.1): 56 data bytes
ping: sendto: No route to host
Тогда это будет нашим неопровержимым доказательством. Мы определили, что можем достичь 10.0.0.0/24 и 192.168.1.0/24, поскольку знаем, где находятся эти сети. Но как ваш компьютер должен знать, куда отправить остальные?
Если мои теперь очень высокие предположения верны, нам просто нужно знать, куда мы хотим отправлять все пакеты, которые не являются известными локальными сетями. Мы можем добавить маршрут по умолчанию в/etc/rc.conf
defaultrouter="192.168.1.1"
Когда вы установите маршрут по умолчанию, вы заметите, что он указан как default
под Destination
в таблице маршрутизации (netstat -4rn
)
Если вы хотите, чтобы ваш компьютер работал в качестве маршрутизатора для 10.0.0.0/24 в вашей проводной сети, чтобы он мог подключаться к Интернету по беспроводной сети, вам это также необходимо:
gateway_enable="YES"
Подробнее о маршрутизации можно прочитать в руководстве по FreeBSD 31.2. Шлюзы и маршруты
Вы приравниваете netif
к /etc/netstart
.Загляните внутрь netstart
и посмотрите, насколько он прост -, но сколько всего он делает. Поскольку я предполагаю, что ваша проблема связана с маршрутизацией, вам действительно нужно:
# service netif restart
# service routing restart
Я долго отвечал на этот вопрос. Я этого не делал, потому что это интересный вопрос. Но я хотел приложить усилия, потому что ОП приложил усилия, чтобы обновить вопрос.
Это очень типичный простой вопрос об устранении неполадок, который у многих здесь возникает. Затем я хотел показать, какие шаги я прошел, чтобы ответить на этот вопрос. Может быть, мне повезло, и я угадал правильно. Но, надеюсь, понятно, сколько предположений и догадок мне понадобилось. Всего этого можно было бы избежать, если бы вопрос был поставлен более тщательно.
Уроки, которые следует усвоить:
Обратите внимание, как два разных человека запрашивают дополнительную информацию. Как мало информации вы предоставили заранее. А при обновлении вы даже не предоставили все что просят. Чем больше времени вы потратите на свой вопрос, тем больше времени люди потратят на ответ.