AWKは、特定の単語なしで特定のフィールドを印刷します。

AWKは、特定の単語なしで特定のフィールドを印刷します。

入力する:

a-0;Password-1010;c-ss;d-fk;h-14;i-jawad;j-dd;[email protected];
a-7990:15:71;b-aa;c-1;Password-2020;h-iOS;[email protected];

出力:

[email protected],1010
[email protected],2020

私の入力ファイルは私の例と同じです。私はちょうどdelimiterを使用して合計を直接印刷したいと思いますEmailPassword,

ファイルの各行には安定した単語;Email-があります;Password-

私はそれを試しましたが、awk -F';' '{ print $8, $2 }'いくつかの修正が必要なので、目標を提供しません。

ベストアンサー1

目的の出力が各行の同じフィールド内で一貫していないため、フィールドを繰り返し、置換とEmail-接頭Password-辞を試み、置換が成功した場合は結果を記録することをお勧めします。

awk '
  BEGIN {
    FS=";"; OFS=",";
  }
  {
    for (i=1;i<=NF;i++) {
      if (sub(/^Email-/,"",$i))
        e = $i; 
      else if (sub(/^Password-/,"",$i)) 
        p = $i;
     }
     print e, p
  }' file
[email protected],1010
[email protected],2020

おすすめ記事