Доброе время суток!
Пытаюсь в FreeBSD вычленить номер jail (JID) по конкретному IPКоманда jls возвращает:
JID IP Address Hostname Path
2 192.168.1.4 proto.nas.bocmannet /jail/protoесли я пишу # jls | grep "192.168.1.4"
то получаю:
2 192.168.1.4 proto.nas.bocmannet /jail/protoа вот как получить именно цифру "2" и подставить ее потом в вызов другой команды как значение параметра я никак не могу понять.
Был бы благодарен за помощь!
jls | grep "192.168.1.4" | awk '{print $1}'
> jls | grep "192.168.1.4" | awk '{print $1}'Оно, конечно, работает, но useless use of cat^W grep никто не отменял:
> grep "192.168.1.4" | awk '{print $1}'| awk '$2=="192.168.1.4"{print $1}'
зыж И, кстати, а Вас 192.168.194.255, например, пролезает.
>> jls | grep "192.168.1.4" | awk '{print $1}'
> Оно, конечно, работает, но useless use of cat^W grep никто не отменял:
>> grep "192.168.1.4" | awk '{print $1}'
> | awk '$2=="192.168.1.4"{print $1}'
> зыж И, кстати, а Вас 192.168.194.255, например, пролезает.Про 192.168.194.255 я что-то не понял...
не поясните?
>> зыж И, кстати, а Вас 192.168.194.255, например, пролезает.
> Про 192.168.194.255 я что-то не понял...
> не поясните?| grep "192.168.1.4"
пропустит как строку
2 192.168.1.4 proto.nas.bocmannet /jail/proto
, так и
999 192.168.194.255 meta.щas.bocmannet /jail/moto
>>> jls | grep "192.168.1.4" | awk '{print $1}'
>> Оно, конечно, работает, но useless use of cat^W grep никто не отменял:
>>> grep "192.168.1.4" | awk '{print $1}'
>> | awk '$2=="192.168.1.4"{print $1}'
>> зыж И, кстати, а Вас 192.168.194.255, например, пролезает.
> Про 192.168.194.255 я что-то не понял...
> не поясните?Да, абсолютно справедливое замечание.
Для вашего случая, лучше так:
jls | grep "192.168.1.4" | awk '$2=="192.168.1.4"{print $1}'
Большое спасибо за ответы и помощь!
> Для вашего случая, лучше так:
> jls | grep "192.168.1.4" | awk '$2=="192.168.1.4"{print $1}'михалыч ну ты чего? :) Тут grep вообще не нужен ...
Может, он констатировал смерть? "Для вашего случая даже useless grep уже не страшен."
> михалыч ну ты чего? :) Тут grep вообще не нужен ...А я что? Я ни чего! ))
Это же товарисч с grep'ом начал, ну я и помог!> Может, он констатировал смерть? "Для вашего случая даже useless grep уже не страшен."
Ну ладно, ладно! Уговорили!
Конфуз, однако, вышел.О! Помощь утопающим - дело рук самих утопающих!
Я нашёл волшебный ключик у grep -F , вот! (типа извернулся)
(к сожалению, ключ -P не поддерживается во FreeBSD, а то можно было бы с ним одним махом попробовать)И тогда использование grep оправдано (частично), ничего другое не пролезет(?)
| grep -F "192.168.1.4" | awk '{print $1}'или дуплетом, с обеих стволов сразу, чтобы уж наверняка добить ))
| grep -F "192.168.1.4" | awk '$2=="192.168.1.4"{print $1}'А щас, напоследок, шмальну-ка я из perl'а, партизаны не сдаются!
| perl -ne 'if (/192\.168\.1\.4/){s/\s*?(\d+)\s+?.*/$1/;print}'
Неужто Гугл начал пожизненно банить ?
Спасибо большое!
вот это отлично подошло jls | grep "192.168.1.4" | awk '{print $1}'а с гуглом ступил и искал только по русски:(