GAWKで配列のすべての要素をスキャンすると、値ではなく数値が返される
質問
次の機能を指定します:
function process_pipes(text)
{
split(text,recs,"|");
for (field in recs){
printf ("|%s|\n", field)
}
}
入力が次の場合:0987654321 | 57300 | ERRORアカウント番号が見つかりません| GDUMARESQ | 0199 | 9 | N | 0 ||
テキストではなく以下の数字が表示されるのはなぜですか?
|4| |5| |6| |7| |8| |9| |10| |1| |2| |3|
解決
split
は、コード内に配列 recs
を作成し、 recs [1]
== 0987654321など
for(recsのフィールド)
ループは、配列要素ではなく、インデックスのリストを生成します。
したがって、必要なもの:
function process_pipes(text)
{
split(text,recs,"|");
for (field in recs){
printf ("|%s|\n", recs[field])
}
}
他のヒント
理由
for ... in
キーを提供します。使用
printf("|%s|\n",recs[field]);
値を取得します。
所属していません StackOverflow