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

我的输入文件与我的示例相同。我只想直接用分隔符打印Email和。Password,

文件中的每一行都包含稳定的单词;Email-and;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

相关内容