問題タブ [mawk]
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.
shell - awk で新しいコマンドまたはマクロを定義する方法
など、既存の awk コマンドをラップする新しいコマンドを定義するのが好きprint
です。ただし、関数を使用したくありません。
代わりに、括弧なしで呼び出すことができる新しいコマンドを定義したいと思います。
私が想像できる解決策の 1 つは、プリプロセッサを使用し、awk スクリプトのシバンを適切に設定して、このプリプロセッサに続いて awk を呼び出すことです。しかし、私は純粋な awk ソリューションをもっと望んでいました。
注:ソリューションは、バニラGNU / awkよりもはるかに高速であるため、私が使用するmawkでも機能するはずです。
更新gawk
: (GNU/awk) は非常に高速であり、必須ではないことが議論で明らかになりましたmawk
。
bash - 列内の値を照合して計算を実行する AWK
私は AWK が初めてで、自分の問題に対する答えを見つけようとしています。次の値を持つフラット ファイルがあります。
awk を使用して、現在の行の $1 を次の行の $1 と比較し、$3 ~/f/. ステートメントが真の場合、現在の行の $4 から次の行の $4 を減算し、その差を現在の行の新しい列に書き込みます。偽の場合は何もしません。私がこれまでに持っているのはこれです:
そして明らかにそれは機能していません。誰か助けてくれませんか?
bash - Ubuntu および Mac で awk コマンドで switch/case を実行するとエラーが発生する
次のコードを実行すると、非常に奇妙な問題が発生します。
次のエラーを取得:
何が問題なのですか?
Mac でテスト済み:
出力:
Ubuntu でテスト済み:
出力:
linux - AWK: 次のファイルにスキップ
処理するデータ ファイルが多数ありますが、すべてのファイルのすべてのレコードを処理する必要はありませんawk
。現在のファイルの処理を停止し、次のファイルにスキップするように指示する方法はありますか?
bash - 同じ関数を異なる引数で何度も呼び出すと遅い理由
何千もの単語のリストから 4 つの単語のランダムなパスフレーズを生成する単純な bash スクリプトを作成しました。個人的に使用するのが本当に安全で効率的かどうかはわかりませんが、改善について考えている場合はお知らせください。しかし、それは重要なポイントではありません。それをチェックしてください - >
したがって、ラップトップで実行すると、入力と出力は次のようになります。
二度目:
時々かなり面白いことがあります。
とにかく、これはスクリプトです:
単語の種類ごとに配列を作成する必要がある場所がわかりますか? 3タイプ3配列。そのコードを関数で取得することを考えたので、その関数を 4 回 (4 つの単語ごとに 1 つずつ) 異なる引数で呼び出す必要があります。私はそれがもっと速いだろうと本当に思っていました。
コードの変更は次のとおりです。
ここに入力/出力があります:
そしてまた:
タイミングの違いはそれほど大きな問題ではありませんが、全体的には間違いなく速くなると思いました.
では、2 番目のスクリプトが最初のスクリプトよりも遅い理由がわかりますか?
linux - 異なる awk バージョンの違いは何ですか?
ここでawk を読んでいますが、以前にさまざまな awk で問題が発生したため、awk のバージョンについて疑問に思っています。以下は、私が持っている別のバージョンです。私が理解しているように、awk、mawk、およびgawkがあります。gawk が最新/より優れています。誰かが私の仮定を明確にすることができますか? 私は GNU Awk 4.1.1 を使用するのが最新で最高です。つまり、それは gawk ですか? 異なるバージョンに関するその他のコメントはありますか?
env1 - 私の PC の cygwin
env2 - Docker コンテナ
編集1
コメントに従って、awk、gawk、および mawk
gawk
(GNU awk の略) のタグをクリックすると、さまざまな便利な拡張機能を備えた awk の無料の実装です。
Mawk
AWK プログラミング言語の実装および高速プロセッサです。
AWK
テキスト処理用に設計されたインタープリター型プログラミング言語で、通常はデータ抽出およびレポート ツールとして使用されます。このタグは、質問がawk または awk ベースの API を使用したプログラミングに関連する場合にのみ使用してください。awk コマンドライン オプション自体の使用またはトラブルシューティングに関する質問は、トピック外です。