awk を使用して複数のパターンを含む列を出力する

エカシス

awk複数のパターンを含む列を印刷するために使用する必要があります。列 #2 と、"config" と "service" をそれぞれ含むすべての列を印刷する必要があります。

ファイルの内容:

    build 345 java groovy /test:fail.txt /config:launcher.mxres /nickname:prod /service:session 
    auto 4986 java -xmx512 -d64 /test:pass.txt /nickname:deal /service:engine /config:launcher5.mxres
    build 912 binary.exe -f -t /test:code.txt /config:launcher_binary.mxres /service:scanner /nickname:input 

出力:

    345 /config:launcher.mxres /service:session
    4986 /config:launcher5.mxres /service:engine
    912 /config:launcher_binary.mxres /service:scanner
クサラナンダ

次のawkスクリプトは、各行のフィールド (列) を調べて、フィールド/config:/service:フィールドを探します。見つかった場合、これらのフィールドの完全な内容が変数に保存されます。

フィールドが処理されると、スクリプトはループから見つかったフィールドと一緒に 2 番目のフィールドのデータを出力します。その後、プロセスは次の入力行に進みます。

{
    config = service = "";

    for (i = 3; i <= NF; ++i) {
        if ($i ~ "^/config:") {
            config = $i;
        } else if ($i ~ "^/service:") {
            service = $i;
        }
    }

    print $2, config, service;
}

このスクリプトはテスト済みで、gawk(GNU awk)、mawk(Mike's awk)、およびnawk(BSD awk) で動作します。

提供したデータでこれを実行します。

$ awk -f script.awk data
345 /config:launcher.mxres /service:session
4986 /config:launcher5.mxres /service:engine
912 /config:launcher_binary.mxres /service:scanner

タブ区切りの出力が必要な場合BEGIN { OFS = "\t" }は、スクリプトの先頭に追加します。

... または、元のスクリプトの出力を渡すこともできますcolumn -t(必要に応じて、列を揃えるために複数のスペースを挿入します):

$ awk -f script.awk data | column -t
345   /config:launcher.mxres         /service:session
4986  /config:launcher5.mxres        /service:engine
912   /config:launcher_binary.mxres  /service:scanner

ワンライナーとして:

$ awk '{ config = service = ""; for (i = 1; i <= NF; ++i) { if ($i ~ "^/config:") { config = $i } else if ($i ~ "^/service:") { service = $i } } print $2, config, service }' data | column -t

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

awkを使用して、1つの列に複数のパターンが発生する行を抽出します

分類Dev

awkを使用して複数の連想配列と条件を含む行を印刷する方法

分類Dev

awkを使用して列に特定のパラメーターを出力します

分類Dev

特定のファイルについて、AWKを使用して特定のパターンを含む列を印刷します

分類Dev

awkを使用してパターンの後に複数の行を追加する方法

分類Dev

コマンドライン出力を使用して変数でAWKパターンを使用する

分類Dev

awkを使用して2つのパターン間の行を異なる出力ファイルに出力する

分類Dev

awk:変数をパターンとして使用する方法

分類Dev

awkを使用してbashで別の順序付けられた配列パターンを使用して、複数行の配列を並べ替えます

分類Dev

文字列比較の変数としてawk出力を使用する

分類Dev

awkを使用して複数の列を変更する

分類Dev

改行を含むパターンを削除するためのsedまたはawk

分類Dev

Awkを使用して複数の連続した行を出力する方法

分類Dev

awk:列変数をパターンとして使用

分類Dev

awkで複数のパターンを検索する

分類Dev

awkで変数を使用してパターンを使用する方法

分類Dev

Perl、sed、awkを使用して複数行のパターンを置き換えます

分類Dev

特定の列でawkを使用してパターンを抽出します

分類Dev

印刷する列を含むAwkパス変数

分類Dev

印刷する列を含むAwkパス変数

分類Dev

awkを使用して複数の文字列に対してファイルパスをフィルタリングする

分類Dev

awkを使用して、複数の一致を実行し、各パターンの後に異なる行数を印刷する方法

分類Dev

awkは、列$ 3からパターンと名前が含まれる複数のファイルを作成します

分類Dev

awkを使用して、「db2」と「SAP」の両方の文字列を含む3番目の列を出力する方法は?

分類Dev

awkを使用して定義パターンを除外する

分類Dev

awkを使用してパターンペアを検索する

分類Dev

UNIXでawkを使用してパターンを検索する

分類Dev

AWKを使用して各行に特殊文字を含む文字列を追加する方法

分類Dev

AWKを使用したスラッシュを含む検索パターン

Related 関連記事

  1. 1

    awkを使用して、1つの列に複数のパターンが発生する行を抽出します

  2. 2

    awkを使用して複数の連想配列と条件を含む行を印刷する方法

  3. 3

    awkを使用して列に特定のパラメーターを出力します

  4. 4

    特定のファイルについて、AWKを使用して特定のパターンを含む列を印刷します

  5. 5

    awkを使用してパターンの後に複数の行を追加する方法

  6. 6

    コマンドライン出力を使用して変数でAWKパターンを使用する

  7. 7

    awkを使用して2つのパターン間の行を異なる出力ファイルに出力する

  8. 8

    awk:変数をパターンとして使用する方法

  9. 9

    awkを使用してbashで別の順序付けられた配列パターンを使用して、複数行の配列を並べ替えます

  10. 10

    文字列比較の変数としてawk出力を使用する

  11. 11

    awkを使用して複数の列を変更する

  12. 12

    改行を含むパターンを削除するためのsedまたはawk

  13. 13

    Awkを使用して複数の連続した行を出力する方法

  14. 14

    awk:列変数をパターンとして使用

  15. 15

    awkで複数のパターンを検索する

  16. 16

    awkで変数を使用してパターンを使用する方法

  17. 17

    Perl、sed、awkを使用して複数行のパターンを置き換えます

  18. 18

    特定の列でawkを使用してパターンを抽出します

  19. 19

    印刷する列を含むAwkパス変数

  20. 20

    印刷する列を含むAwkパス変数

  21. 21

    awkを使用して複数の文字列に対してファイルパスをフィルタリングする

  22. 22

    awkを使用して、複数の一致を実行し、各パターンの後に異なる行数を印刷する方法

  23. 23

    awkは、列$ 3からパターンと名前が含まれる複数のファイルを作成します

  24. 24

    awkを使用して、「db2」と「SAP」の両方の文字列を含む3番目の列を出力する方法は?

  25. 25

    awkを使用して定義パターンを除外する

  26. 26

    awkを使用してパターンペアを検索する

  27. 27

    UNIXでawkを使用してパターンを検索する

  28. 28

    AWKを使用して各行に特殊文字を含む文字列を追加する方法

  29. 29

    AWKを使用したスラッシュを含む検索パターン

ホットタグ

アーカイブ