LINUX.ORG.RU

Bash - как сделать вывод из одной команды в другую?

 , , , ,


0

1

Добрый день. Имеются две команды:

1. Посмотреть все соединения процессов JAVA с портом 3050 с группировкой по PID и подсчетом коннектов:

lsof -i :3050 | grep java | awk '{print $2}' | sort | uniq -c | sort -n

2. Выводить информацию о JAVA-процессах, имеющих отношение к порту 3050:

ps -fp $(lsof -i :3050 | grep java | awk '{print $2}')

По отдельности все хорошо, но хотелось бы запускать только одну совмещенную команду. Т.е. в одном выводе чтобы было: число коннектов, PID, параметр CMD из PS (полная строка запуска). Остальное не критично. Сломал уже голову, не могу придумать. К тому же я не очень силен в LINUX и в BASH в частности.



Последнее исправление: lanmaster2 (всего исправлений: 2)

Не понял, почему бы не запустить эти команды через ; или echo $(cmd1) $(cmd2)? Повторяющийся кусок lsof -i :3050 | grep java | awk '{print $2}' можно выполнить один раз и сохранить результат в переменную.

alozovskoy ★★★★★
()
Последнее исправление: alozovskoy (всего исправлений: 1)
Ответ на: комментарий от anonymous

а блин, там uniq -c, тогда join для двух выхлопов (в баше join <(..) <(..) ) ну или ручками с вызовом в цикле ps

anonymous
()
Ответ на: комментарий от alozovskoy

Так вроде же echo выведет все строки, а потом к ним добавит второй вывод. А надо чтобы в каждой строчке объединялось...

lanmaster2
() автор топика
Ответ на: комментарий от arrecck

Ну еще цикл можно на xargs заменить

cvv ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.