입력하다:
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