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 를 사용하여 합계를 직접 인쇄하고 싶습니다 Email.Password,

파일의 각 줄에는 안정적인 단어 ;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

관련 정보