この質問は既に尋ねられていますが、私が見つけた解決策はありませんでした。パイプ文字区切り文字でフィールドを区切る方法
COUNT|293|1|lps
私は2番目のフィールドを持つに興味があるしかしこれらの試みの誰が働いた:
./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 エラーが発生しました。出力が標準エラーになりました。
./spawn 1 2>&1 | cut -d '|' -f2
4615
申し訳ありません。
を、それが '1' ./spawnは、標準エラーの代わりに、標準出力に印刷されている可能性があり、次は動作するはずですので、あなたは、
2>&1
を使用して出力をリダイレクトすることができますか? './spawn 1 2>&1 |を実行します。カット-d '|'例えば、-f2'の仕事? –