コマンドラインユーティリティを使用して、UNIXでXML、JSON、および新しいデータファイル形式を解析する


9

Unix環境には、さまざまな形式のテキストを解析するための優れたツールがいくつかあります。ただし、最近のデータは、以前のような従来の(履歴)形式(CSV、TSV、レコードベース、またはその他の区切り文字ベース)ではありません。最近のデータは、XML / JSONなどの構造化フォーマットで交換されます。

sed、awk、Perlのような、ほとんどすべての形式のデータを削除できる優れたツールがあることは知っています。ただし、この種の構造化データを操作するには、多くの場合、完全なプログラムを作成する必要があり、情報を抽出するために利用できる少しの時間を考えると、座ってクエリしたいロジック全体を理解する必要があります。プログラムでそれをダウンさせます。時々、これは大丈夫ではありません–基本的にそれらのファイルから抽出された情報がさらなる作業のための入力として機能するためです。また、適切なソリューションを検索してコーディングするのに時間がかかるためです。データを検索、クエリ、およびダンプするための十分なスイッチを備えたコマンドラインツールが必要です。

XML / JSONまたは他の形式の構造化データを取得し、csvなどの他の形式にダンプして、そこから他のコマンドを使用して情報を取得できるツールを探しています。

あなたが知っている、この種の仕事をするコマンドラインユーティリティはありますか?これに利用可能なawk / Perlスクリプトはすでにありますか?

回答:


5

xmlの場合はhttp://xmlstar.sourceforge.net/があります

XMLStarletは、一連のコマンドラインユーティリティ(ツール)であり、UNIXのgrep、sed、 awk、diff、patch、joinなどのコマンド。

xsltprocおよび同様のツールを使用することもできます(saxon)。

jsonの場合:python、ruby、perlを使用して変換することも良いと思います。


jqシェルでJSONを解析するための優れたツールです:stedolan.github.io/jq
Kusalananda

4

そのためには、Perl、Python、またはRubyのモジュールをうまく使用できると思います。そして、これらのいずれもスクリプトに使用できます。


私の全体的なポイントは、スクリプトを書くことを避け、代わりにコマンドを使用してそれを試みることでした。スクリプトを作成すると、この質問の目的全体が無効になります。
カマール2011年

ruby -e 'program text'「スクリプトを書く」ことを検討しますか?
アレックス

私はあなたを正しく理解していなかったと思います。「プログラムテキスト」はどこで入手できますか?
kamaal

@kamaal:知らん。Google?選択したスクリプト言語のドキュメントですか?Perlを使用している場合は、CPANが頭に浮かびます。
アレックス

@kamaal:データ形式が高度になるにつれて、実行する操作の説明が長くなります。たとえばperl -0777 -MJSON -e '$t=from_json(<STDIN>); do_something_with($t)'、最小限の手間でJSONを処理できます。それでも、どういうわけかデータをどうするかをコンピュータに伝える必要があります。
Gilles 'SO-悪をやめる'
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.