問題タブ [nawk]

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.

0 投票する
2 に答える
727 参照

bash - nawk各行に列を追加

各行の最後にファイル名の列を追加しようとしています。すべての行には

Namesurnameスペースでnumber区切られSurname、タブで区切られています。

私はこのスクリプトでそれを行っていますが、それは機能せず、行の先頭にファイル名を追加するだけです。

PSOSはSunOSです。

0 投票する
4 に答える
94 参照

regex - Linux: 行から属性を抽出して変換する

次の形式の行を含むファイルを取得した場合:

SOME_ATTRIBUTE_1 XYZ; IMPORTANT_ATTRIBUTE_1 1234; SOME_ATTRIBUTE_2 XYZ; IMPORTANT_ATTRIBUTE_2 AB;

これを次の形式に変換して、2 つの重要な属性値が新しい属性を生成するようにします。

JOIN_IMPORTANT_ATTRIBUTE AB1234; SOME_ATTRIBUTE_1 XYZ; IMPORTANT_ATTRIBUTE_1 1234; SOME_ATTRIBUTE_2 XYZ; IMPORTANT_ATTRIBUTE_2 AB;

これは awk などのワンライナーで実行できますか? Javaトリックボックスをつかむことなく、これに取り組む方法がわかりません。

0 投票する
1 に答える
867 参照

linux - Unix の Nawk コマンド

示されているように、nawk コマンドがあります。このコマンドが何をするのか、誰でも説明できますか?

0 投票する
1 に答える
392 参照

csv - awk 配列内の要素を設定する

処理する大きな .csv ファイルがあり、要素は次のようにランダムに配置されます。

xxxxxx,xx, MLOCAL, MREMOTE, 33222, 56, xxxxxx,xx, , , , 22/10/2012, xxxxxx,xx, , , xxxxxx,xx, , , xxxxxx,xx , , , , , xxxxxx , xx , , , , xxxxxx , xx, , ,18/10/2012MREMOTEMLOCAL332225622/10/201218/10/2012MLOCAL34199322/10/2012
MREMOTE935682808/10/2012
LOCALREMOTE193161525322/10/201222/10/2012
REMOTELOCAL186587138366622/10/201222/10/2012
REMOTE118030613419/10/2012

フィールドLOCALREMOTEMLOCALまたはMREMOTEは次のように表示されます。

  1. それらがペア ( LOCAL / REMOTE ) として表示される場合、3 番目のフィールドがMLOCALで、4 番目のフィールドがMREMOTEの場合、5 番目7 番目のフィールドは の値と日付を表しMLOCAL6 番目8番目のフィールドは の値と日付を表しますMREMOTE
  2. それらが単一 ( onlyLOCALまたは only REMOTE) として表示される場合、4 番目と 5 番目のフィールドはフィールド 3 の値と日付を表します。

ここで、次を使用してこれらの行を分割しました。

しかし、3 番目と 4 番目のフィールドのパターンが見つからないため、さらに処理するために配列要素のそれぞれに var 名を割り当て続けなければなりません。

ここで、「case」ステートメントを使用しようとしましたが、awk または nawk では機能しません (gawk のみが期待どおりに機能しています)。私もこれを試しました:

しかし、それはうまくいきません。

ですから、これをどのように処理するかについて何か考えがある場合は、考えられるすべての状況を上からカバーするためのパターンを見つけることができるように、ヒントを教えていただければ幸いです。

編集

このすべての助けに感謝する方法がわかりません。さて、私がしなければならないことは、上で書いたよりも複雑です。できる限り簡単に説明しようと思います。そうしないと、皆さんをかなり混乱させるでしょう。私の出力は次のようになります。

NAME, UNIQUE_ID, VOLUME_ALOCATED, MLOCAL_VALUE, MLOCAL_TIMESTMP, MLOCAL_limit, LOCAL_VALUE, LOCAL_TIMESTAMP, LOCAL_limit, MREMOTE_VALUE, MREMOTE_TIMESTAMP_ REMOTE_VALUE_REMOTE_TIMESTAMP

(ここでMLOCAL_limit、 とはとまたはLOCAL_limitの間の減算結果です)VOLUME_ALOCATEDMLOCAL_VALUELOCAL_VALUE

したがって、私の出力ファイルでは、フィールド位置ように配置 する必要あります。MLOCAL_VALUEMLOCAL_TIMESTMPLOCAL_VALUELOCAL_TIMESTAMPMREMOTE_VALUEMREMOTE_TIMESTAMPREMOTE_VALUEREMOTE_TIMESTAMP

ここで、例は次のようになります: 次の入力の場合: name, ID, VOLUME_ALLOCATED, MLOCAL, MREMOTE, 33222, 56,22/10/201218/10/2012

nameIDVOLUME_ALLOCATEDREMOTE234455_19/12/2012

この行を処理する必要があり、出力は次のようになります。

name, ID, VOLUME_ALLOCATED, 33222, 22/10/2012, MLOCAL_LIMIT, , , , 56, 18/10/2012_ _

7th8th9th、 、およびに関する情報がないため、 、 、 12th、 およびフィールドは空です: 、、、および13thLOCAL_VALUELOCAL_TIMESTAMPLOCAL_limitREMOTE_VALUEREMOTE_TIMESTAMP

また

name, ID, VOLUME_ALLOCATED, , , , , , , , _ 234455_9/12/2012

4th5th6th7th、 、8th9th10th、、11th、 に関する情報がないため、フィールドは空の値である必要があります: MLOCAL_VALUEMLOCAL_TIMESTAMPMLOCAL_LIMITLOCAL_VALUELOCAL_TIMESTAMPLOCAL_LIMITMREMOTE_VALUEMREMOTE_TIMESTAMP

VOLUME_ALLOCATEDID次のように、スクリプトで以前に処理されたフィールドに基づいて、他の csv ファイル (「info.csv」と呼ばれる) から取得されます。

情報.csv

VOLUME_ALLOCATED, ID, CLIENT 5242881, 64, subscriber 567743, 24_visitor

データ.csv

NAME, 64, MLOCAL, 341993, 23/10/2012 NAME, $ , $ , $ 24_LOCALREMOTE2347432419/12/201218/12/2012

今、私のコードはこれです:

3 番目と 4 番目のフィールドを処理する方法がわからないため、残りのフィールドを設定する正しい方法が見つかりません。

かなり混乱させて申し訳ありませんが、これが私の現在の状況です。ありがとう

0 投票する
4 に答える
131 参照

linux - Unix での Awk 入力の分離

/ で区切られた 2 つの日付を取得する Awk プログラムを作成しようとしています。たとえば、2013 年 3 月 22 日であり、それらを 3 つの別々の数字に分割して、22 の 3 と 2013 を別々に操作できるようにします。

プログラムを次のように呼び出したい

これまでのところ、私は持っています:

これは両方の日付を受け入れますが、それらを分割する方法がわかりません。さらに、上記のプログラムは nawk で呼び出す必要があり、awk は 2013 年 2 月 23 日を開くことができないと言います。

前もって感謝します。

0 投票する
4 に答える
2220 参照

json - 末尾の区切り文字なしでAWKの出力レコードを区切る

私は次の記録を持っています:

そして、AWKでJSONに変換したいと思います。このコードの使用:

私にこれを与えます:

問題は、最後のデータ行の末尾にコンマがあることです。JSON出力が受け入れられなくなります。この出力を取得するにはどうすればよいですか?

0 投票する
1 に答える
1245 参照

ksh - awk を使用してファイルの各行を読み取り、配列に格納します

私はSun Solarisでkshに取り組んでいます。ジョブ名が 1 行に 1 単語しかないファイルがあります。ファイルからすべてのジョブを読み取り、指定された順序で 1 つずつ実行します。kshでそれを行う方法。以下のコードは、コマンド プロンプトで起動すると正常に動作します。シェルスクリプトで実行しようとすると、エラーが発生します。

エラー:

0 投票する
1 に答える
48 参照

unix - nawkスクリプトの名からhtmlへの最初の文字を取得しようとしています

17 行目が機能しないのはなぜですか (コードでコメントされています)?:

17行目にそのような文を入れてもいいですか?名の最初の文字を取得しようとしています。

0 投票する
1 に答える
33 参照

html - Nawk スクリプトからの HTML テーブルでの間違った出力

$3.txt私のメールアドレス列を表す3列目です。"$3"電子メール アドレスではなく、次のステートメントが出力されるのはなぜですか?:

私は立ち往生しています。