我知道这个问题已经被问到,但没有找到我找到的解决方案!我有了这样一个输出的程序:如何用管道字符分隔符分隔字段
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的某个地方有bug吗?我会惊讶的发现,我的Linux主机和我的嵌入式设备上使用busybox的灰烬的结果是一样的!任何指针,非常感谢!
编辑 我的错,输出在stderr ... ._。
./spawn 1 2>&1 | cut -d '|' -f2
4615
对不起ennoying!
只是一个猜测,但有可能的是'./spawn 1'被打印到标准错误而不是标准输出? './spawn 1 2>&1 |切-d'|' -f2'的工作,例如? –