問題タブ [text-parsing]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
sed - 不確かなセパレータ、sedで乱雑なログを解析する
私は#huge#テキストファイル(100mbから1gbまで)に取り組んでいます。それらを解析して特定のデータを抽出する必要があります。厄介なのは、ファイルに明確に定義されたセパレータがないことです。
例えば:
「(引用符)で制限された文字列の空白を削除する必要があります。問題は、引用符の「外側」の空白を消去してはならないことです(そうしないと、一部の数値がマージされます)。適切なsedソリューションが見つかりません。誰かがこれを手伝ってくれる?
csv - awkは、引用符で囲まれたフィールド内にカンマを含むCSVファイルを処理できますか?
awkを使用して、csvファイルの1つの列の合計をカウントしています。データ形式は次のようなものです。
私はこのawkスクリプトを使用して合計をカウントしていました:
名前フィールドの値の一部にコンマが含まれているため、awkスクリプトが壊れます。私の質問は:awkはこの問題を解決できますか?はいの場合、どうすればそれを行うことができますか?
ありがとうございました。
regex - Perlはテキスト文字列(HTMLページ、テキストドキュメントなどから)を行ごとに配列に分割しますか?
何がこれに完全に関与しているのか正確には理解していないので、少なくとも私にとっては奇妙な質問です。基本的に、スクレイピングしたドキュメント (Web ページなど) を.txt
ファイルに保存するこのプロセスを行ってきました。次に、Perl を使用してこのファイルを読み取り、各行を配列に入れることが簡単にできます。ただし、ドキュメント内の目に見えるものに基づいてこれを行っているわけではありません (つまり、HTML の改行ではありません)。.txt
フォーマットに基づいて、新しい行がどこにあるかを知っているだけです。
ただし、このプロセスを省略して、変数内から同じことを実行したいので、代わりに、.txt
ファイルの内容を文字列にして、同じ方法で解析したいと思います。 、 1行ずつ。私にとっての問題は、Perl がどのように新しい行がどこにあるのかを知ることができるかを本当に理解していないため、これがどのように機能するかについてあまり知らないことです (HTML の改行を使用しないと仮定すると、よくあることです)。単なる Web ベースの .txt ファイルです (私のスクレーパー www:mechanize に Web ページとして表示されます)。空白などの他のパラメーターを使用してこれを行うことができると思いますが、行ごとにこれを行う方法があるかどうか知りたいです。どんな情報でも大歓迎です。
ファイルの実際の保存を減らして、使用しているサーバーのアクセス許可に関連する問題を減らしたいと思っています。また、プロセスをより効率的にできるかどうかも知りたいです。
ruby - Ruby の拡張ログ ファイル形式パーサー
W3C 拡張ログ ファイル形式の Ruby パーサーを探しています。
http://www.w3.org/TR/WD-logfile.html
理想的には、ログ ファイルのフィールドに基づいて多次元配列を生成します。FasterCSV ( http://fastercsv.rubyforge.org/ ) が CSV ファイルを処理する方法と同様のことを考えています。
そのようなライブラリが存在するかどうかは誰にもわかりませんか? そうでない場合、私がどのように構築するかについて誰かアドバイスを提供できますか?
テキストファイルを配列に変換するための文字列操作を理解できると確信しています。私は主に、大量のログ ファイルの処理について懸念しています (そのため、データをディスクなどにストリーミングする必要がある可能性があります)。
敬具、キャメロン
python - Pythonのリストから値を削除する
スペースで区切られた1行に名前と値の大きなファイルがあります。
name1 name2 name3....
名前の長いリストの後には、名前に対応する値のリストが続きます。値は0〜4またはnaにすることができます。私がやりたいのは、データファイルを統合し、値が。の場合はすべての名前と値を削除することですna
。
たとえば、このファイルの名前の最後の行は次のようになります。
namenexttolast nameonemore namethelast 0 na 2
次の出力が欲しいです:
namenexttolast namethelast 0 2
Pythonを使用してこれを行うにはどうすればよいですか?
excel - スペース/タブ区切りのテキスト ファイルの解析と XL ファイルへの埋め込み
こんにちは、この形式のテキスト ファイルがあります
私の出力は、この形式のExcelである必要があります
ここで、状況を編集して詳しく説明しました。
txt の内容をオンザフライで XL にエクスポートする方法や、2 つの異なるファイルの列をマッピングする手順を説明する方法を教えてください。実際、私の入力は、スペースで区切られたテキスト ファイル、Excel ファイル、または MS Access データベースのいずれかにあります。ただし、出力はExcelのみです。そのため、ファイルをロードしてマップし、テキストを結果のファイルに XL 形式 (97-2003) で転送するロジックが必要です。
c# - ASP.NET MVC ページングを使用して Web ページにログ ファイル情報を表示する
ログは、次の形式で txt ファイルに保存されています。
======2010/8/4 10:20:45 AM================================ ========
寄付の処理
======2010/8/4 10:21:42A M================================ ========
サーバーへの情報の送信
======2010/8/4 10:21:43 AM================================ ========
これらの行を解析して、「====」行間の情報を 1 つのレコードとしてカウントし、ASP.NET MVC のページングを使用して Web ページに表示する必要があります。
例: 最初のレコード エントリは次のようになります。
======2010/8/4 10:20:45 AM================================ ================
寄付の処理
私はこれまで運がありませんでした。どうすればいいですか?
c# - 正規表現を使用して 2 つの特定の単語間のすべてを一致させる
正規表現を使用して Oracle トレース ファイルを解析しようとしています。私が選んだ言語は C# ですが、この演習では Ruby に慣れるために Ruby を使用することにしました。
ログ ファイルはある程度予測可能です。ほとんどの行 (具体的には 99.8%) は、次のパターンに一致します。
ただし、ログのいくつかの場所では、何らかの理由で複数の行にまたがる複雑なクエリが多数あります。
これらのエントリについて注意すべき点が 2 つあります。これは、ログ ファイルが何らかの破損を引き起こしているように見えることです。これは、出力できない文字で終了し、突然次のエントリが同じ行で始まるためです。
これは明らかに行ごとにデータをキャプチャすることを除外しているため、次善の策は「TIME:」という単語と「TIME:」の次のインスタンスまたはファイルの終わりの間のすべてを一致させることだと思います。これを正規表現で表現する方法がわかりません。
より効率的なアプローチはありますか?解析する必要があるログ ファイルは 1.5 GB を超えます。私の意図は、行を正規化し、不要な行を削除して、最終的にクエリ用のデータベースに行として挿入することです。
ありがとう!
sql - SQL に似たクエリをそのコンポーネント パーツに解析するためのフレームワークはありますか?
私が使用している CMS の SQL に似たクエリ構文を作成することに興味があります。アイデアは、CMS クエリを SQL 風の構文で記述できるというもので、CMS API を介して実行するように変換します。
フィールドやテーブルの選択はないので、これから取得する方法が必要です。
基本的に、括弧と AND/OR に基づいて WHERE 句を正しくグループ化する方法が必要です。
これを行うためのフレームワークはありますか?それがいつ行われたかの例はありますか?ここで車輪を再発明したくはありません。また、過去に誰かがこれを行ったにちがいないことはわかっています。