Я знаю, что этот вопрос уже задан, но никакое решение, которое я нашел, не работало для меня! У меня есть программа, которая имеет выход так:Как разделить поля с разделителем символов канала
COUNT|293|1|lps
я заинтересован в том, чтобы второе поле, однако не один из этих попыток не работал:
./spawn 1 | cut -d '|' -f2
./spawn 1 | cut -d \| -f2
./spawn 1 | awk -F "|" '{print $2}'
./spawn 1 | awk 'BEGIN{FS="|"} {print $2}'
./spawn 1 | sed 's/|/;/g'
./spawn 1 | sed 's/\|/;/g'
Но выход всегда тот же:
COUNT|293|1|lps
Есть ли ошибка где-то в bash? Я был бы удивлен, результаты будут одинаковыми на моем Linux-хосте и на моем встроенном устройстве, используя зов busybox! Любой указатель высоко ценится!
EDIT Моя ошибка, выход был в stderr ... ._.
./spawn 1 2>&1 | cut -d '|' -f2
4615
Извините за излишнее!
только предположения, но это возможно, что '1' ./spawn печатает на стандартную ошибку вместо стандартного вывода? Делает './spawn 1 2> & 1 | cut -d '|' -f2' работа, например? –