The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

форумы  помощь  поиск  регистрация  майллист  вход/выход  слежка  RSS
"обрезать строку вывода"
Вариант для распечатки  
Пред. тема | След. тема 
Форум Программирование под UNIX (Shell скрипты)
Изначальное сообщение [ Отслеживать ]

"обрезать строку вывода"  +/
Сообщение от laronov (ok) on 03-Сен-13, 12:00 
Доброе время суток!
Пытаюсь в 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" и подставить ее потом в вызов другой команды как значение параметра я никак не могу понять.

Был бы благодарен за помощь!

Ответить | Правка | Cообщить модератору

Оглавление

Сообщения по теме [Сортировка по времени | RSS]


1. "обрезать строку вывода"  +/
Сообщение от михалыч (ok) on 03-Сен-13, 12:22 
jls | grep "192.168.1.4" | awk '{print $1}'
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

4. "обрезать строку вывода"  +/
Сообщение от Andrey Mitrofanov on 03-Сен-13, 16:31 
> 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, например, пролезает.

Ответить | Правка | ^ к родителю #1 | Наверх | Cообщить модератору

5. "обрезать строку вывода"  +/
Сообщение от laronov (ok) on 03-Сен-13, 16:57 
>> 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 я что-то не понял...
не поясните?

Ответить | Правка | ^ к родителю #4 | Наверх | Cообщить модератору

6. "обрезать строку вывода"  +/
Сообщение от Andrey Mitrofanov on 03-Сен-13, 19:04 
>> зыж И, кстати, а Вас 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

Ответить | Правка | ^ к родителю #5 | Наверх | Cообщить модератору

7. "обрезать строку вывода"  +/
Сообщение от михалыч (ok) on 03-Сен-13, 19:40 
>>> 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}'

Ответить | Правка | ^ к родителю #5 | Наверх | Cообщить модератору

8. "обрезать строку вывода"  +/
Сообщение от laronov (ok) on 04-Сен-13, 09:55 
Большое спасибо за ответы и помощь!

Ответить | Правка | ^ к родителю #7 | Наверх | Cообщить модератору

9. "обрезать строку вывода"  +/
Сообщение от Аноним (??) on 04-Сен-13, 18:57 
> Для вашего случая, лучше так:
> jls | grep "192.168.1.4" | awk '$2=="192.168.1.4"{print $1}'

михалыч ну ты чего? :) Тут grep вообще не нужен ...

Ответить | Правка | ^ к родителю #7 | Наверх | Cообщить модератору

10. "обрезать строку вывода"  +/
Сообщение от Andrey Mitrofanov on 04-Сен-13, 22:38 
Может, он констатировал смерть? "Для вашего случая даже useless grep уже не страшен."
Ответить | Правка | ^ к родителю #9 | Наверх | Cообщить модератору

11. "обрезать строку вывода"  +/
Сообщение от михалыч (ok) on 05-Сен-13, 13:38 
> михалыч ну ты чего? :) Тут 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}'

Ответить | Правка | ^ к родителю #10 | Наверх | Cообщить модератору

2. "обрезать строку вывода"  +/
Сообщение от Аноним (??) on 03-Сен-13, 12:25 
Неужто Гугл начал пожизненно банить ?

http://www.google.ru/#newwindow=1&q=shell+split+string

Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

3. "обрезать строку вывода"  +/
Сообщение от laronov (ok) on 03-Сен-13, 13:36 
Спасибо большое!
вот это отлично подошло jls | grep "192.168.1.4" | awk '{print $1}'

а с гуглом ступил и искал только по русски:(

Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру