How to separate fields with pipe character delimiter
我知道这个问题已经被问过了,但是我发现的解决方案都没有对我有用!我有一个输出如下的程序:
1 | COUNT|293|1|lps |
我对第二个领域很感兴趣,但是这些尝试都没有奏效:
1 2 3 4 5 6 | ./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' |
但是输出总是相同的:
1 | COUNT|293|1|lps |
巴什有虫子吗?我会很惊讶,在我的Linux主机和使用busybox's ash的嵌入式设备上,结果是一样的!任何指针都非常感谢!
编辑我的错,输出在stderr中…。
1 2 | ./spawn 1 2>&1 | cut -d '|' -f2 4615 |
对不起,太累了!
重复我在评论中的猜测作为答案,既然提问者已经确认这是问题所在。
这里的问题是,
1 | ./spawn 1 2>&1 | cut -d '|' -f2 |
号
1 2 | $ echo 'COUNT|293|1|lps' | cut -d'|' -f2 293 |
它在这里工作。