Это вызвано тем, что есть файл класса, от которого зависит ваш код, и он присутствует во время компиляции, но не найден во время выполнения. Ищите различия в времени сборки и классах времени выполнения.
Всего одна команда awk
будет выполнять:
$ awk '/state="open"/{match([110], /product="([^"]*)"/, p); match([110], /version="([^"]*)"/,v); if (p[1]) {printf p[1]; if (v[1]) printf ", " v[1];} print "";}' sample.xml
prod1, 3.0.2
secure, 6.6.1p1 Ubuntu 2ubuntu2
hello i am here
who am i, 9.9.5-3
Заметьте, оцените и скопируйте поведение вашей строки команд, когда нет product
, не будет печататься, даже если version
представил. - Вы можете настроить это, если хотите.