タブ区切りのファイルがあるとします。その中に、JSON でエンコードされたデータ列があります。JSON データをデコードして意味のある方法で使用する方法はありますか? 理想的には、メソッドは JSON データを awk のハッシュ テーブル/配列にデコードします。あるいは、Hive のget_json_objectのようなものも同様に機能します。
2 に答える
0
AwkにはJSONをデコードする機能がありません。今こそ、Perl、Python、Rubyなどのより汎用的なプログラミング言語に移行するときです。これらの言語にはすべて、JSONと列区切りのテキストの両方を処理するためのモジュールがあります。
于 2013-02-20T03:09:59.753 に答える
0
tl;dr: やらないでください。
一般的な意見を詳しく説明すると、Awkには関数(再帰を含む)、連想配列、正規表現をサポートする多くの組み込み文字列関数があります。そうです、このための Awk プログラムを作成することは可能です。これは、Awkが主に使用されるワンライナーで実行できますか? 非常にありそうもない。
たとえば、この小さな JSON "object":{a: b, c: d}
を唯一のフィールドと考えてください。
これはあなたの Awk プログラムかもしれません:
echo {a: b, c: d} | awk 'BEGIN {FS="\t"}
{sub("{", "", $1); sub("}", "", $1); split($1, array, ", ");
for (key in array) {
split(array[key], array2, ": ");
dict[array2[1]] = array2[2];
}
}
END {for (key in dict) print key, dict[key]}'
これにより、最終的にキー「a」と「b」、および値「c」と「d」を持つ「dict」が得られます。構築が難しく、保守と変更が困難です。手間を省いてください。多くのきちんとした代替手段があります。例: Python JSON。
于 2013-02-28T05:24:11.280 に答える