私は、次のテストスクリプトこのawkスクリプトが期待どおりに動作しないのはなぜですか?
/^[^a-zA-Z0-9]/ {
DATEd[$3] = $1
}
END {
print " \"data\": ["
for (i = 0 ; i <= 5; i ++) {
{ print " [" i ", \"" DATEd[i] "\"],"}
}
print " ]"
}
を持っており、
2011-01-22 22:12 P16A22_110114072915 22 1312 75 13.55 1399
2011-01-22 22:12 P16A22_110114072915 22 1312 75 13.55 1399
2011-01-22 22:12 P16A22_110114072915 22 1312 75 13.55 1399
2011-01-22 22:12 P16A22_110114072915 22 1312 75 13.55 1399
2011-01-22 22:12 P16A22_110114072915 22 1312 75 13.55 1399
2011-01-22 22:12 P16A22_110114072915 22 1312 75 13.55 1399
このテキストファイルからの読み取りしかし、それは、私はそれが欲しいものをプリントアウトしていない、私はそれが を印刷したいです
"data": [
[0, "2011-01-22"],
[1, "2011-01-22"],
[2, "2011-01-22"],
[3, "2011-01-22"],
[4, "2011-01-22"],
[5, "2011-01-22"],
]
それは実際にのみ
"data": [
[0, ""],
[1, ""],
[2, ""],
[3, ""],
[4, ""],
[5, ""],
]
をプリントアウトしています
なぜ "DATEd [$ 3] = $ 1"は空ですか?
また、配列の長さを確認するにはどうすればよいですか?この場合、 DATEd.lengthは機能しません。
おかげ
EDIT_ _ __ _ __ _ __ _ __ _ __ _ __ _ __ _ __ _ __ _ __ _ __ _ __ _ __ _ __ _ ___
ので@Fredrikの助けと@geekosaurから、私はいくつかの最後の質問になりました、これでどこかに出ている
1)このスクリプトは、今、この
/[a-zA-Z0-9]/ {
DATEd[NR-1] = $1
}
END {
print " \"data\": ["
for (i in DATEd) {
{ print " [" i ", \"" DATEd[i] "\"],"}
}
print " ]"
}
のように見え、次のような出力を提供します
"data": [
[4, "2011-01-26"],
[5, "2011-01-27"],
[6, "2011-01-28"],
[0, "2011-01-22"],
[1, "2011-01-23"],
[2, "2011-01-24"],
[3, "2011-01-25"],
]
しかし、私はそれがこの
"data": [
[0, "2011-01-22"],
[1, "2011-01-23"],
[2, "2011-01-24"],
[3, "2011-01-25"],
[4, "2011-01-26"],
[5, "2011-01-27"],
[6, "2011-01-28"]
]
すなわち見えるようにしたいがソートされ、最終クロージング 『]』文字の前に最後の「」文字を削除します。これは簡単な方法で逃げることが可能ですか?=)
感謝=)
EDIT 3最終Outcome_ _ __ _ __ _ __ _ __ _ __ _ __ _ __ _ __ _ __ _ __ _ __ _ ____スタートとして
@geekosaurと@Fredrik貢献者=の組み合わせを使用し)
{
DATEd[NR-1] = $1; len++
}
END {
print " \"data\": ["
#for (i in DATEd) {
for (i = 0 ; i <= len-1; i ++) {
{ print " [" i ", \"" DATEd[i] "\"],"}
}
print " ]"
}
@Fredrik 5、それが何かを含んでいたかどうかを知りたいだけでした。しかし、私は今それを修正しましたが、まだ動作しません、これは今の/ [a-zA-Z0-9] /、それは動作する必要がありますか? – erik
@erik @geekosaurからの回答を参照してください。3番目のフィールド、つまり「P16A22_110114072915」を使用して配列のインデックスを作成していますか? –
$ 1の長さをチェックするのと同じように、おそらく最後の '、'を削除する方法があります。同じ場合には特別な場合がありますprintf "[%d、%s] \ n" 、NR-1、$ 1? =) – erik