Я пытаюсь использовать awk для анализа вывода, созданного java-приложением, но он не работает. Кажется, что команда после канала не может получить / увидеть данные, отправленные java-приложением.
Я выполняю следующую команду (с возвращением, сгенерированным командой):
[root@localhost]# java -jar jmxclient.jar usr:pass host:port java.lang:type=Threading ThreadCount
06/11/2010 15:46:37 -0300 org.archive.jmx.Client ThreadCount: 103
Мне нужна только последняя часть строки. Итак, я пытаюсь использовать awk (с трубкой в конце строки |awk -F ':' '{print $4}'
:
[root@localhost]# java -jar jmxclient.jar usr:pass host:port java.lang:type=Threading ThreadCount|awk -F ':' '{print $4}'
Но вывод не анализируется. Он выбрасывает всю строку: 06/11/2010 15:46:37 -0300 org.archive.jmx.Client ThreadCount: 103
Я также пытался использовать |cut -f4 -d":"
с тем же результатом: строка не анализируется.
Итак, мой вопрос: как мне проанализировать вывод, чтобы получить только число в конце строки?
TIA,
Боб
Как сказал Игнасио Васкес-Абрамс, это, вероятно, будет stderr. Также есть трюк с awk, который облегчит вам жизнь: $NF
, которое является последним полем. Таким образом, я бы сделал что-то вроде этого:
java -jar jmxclient.jar usr:pass host:port java.lang:type=Threading ThreadCount 2>&1 | awk -F: '{print $NF}'
Журнал, вероятно, выводится на stderr.