
기본 쉘 도구(Python이나 Perl 없음)를 사용하여 이 작업을 수행할 수 있습니까?
입력1:
file1.csv
John,Doe,[email protected]
Andy,Barry,[email protected]
Mary,,[email protected]
INPUT2의 세 번째 열, file1에서 이메일이 발생한 횟수를 계산합니다.
file2.log
[email protected]&fghfgh
asdda&[email protected]
[email protected]&werewr
원하는 출력:
result.csv
John,Doe,[email protected],0
Andy,Barry,[email protected],2
Mary,,[email protected],1
많은 감사합니다!
답변1
유효한 입력을 제공하지 않았으므로 다음을 사용했습니다.
John,Doe,[email protected]
Andy,Barry,[email protected]
Mary,,[email protected]
다음 awk one-liner는 예상되는 결과를 제공합니다.
awk -F, '{l[NR]=$0;f[NR]=$3;c[$3]++}END{for(i=1;i<=NR;i++)print l[i] "," c[f[i]]}'
여기서 문제는 작업에 두 번의 패스가 필요하다는 것입니다. (f[]는 전체 내용을 파싱하거나 마지막에 다시 파싱하는 것을 피하기 위한 편의일 뿐입니다.) 하지만 왜 Python이나 Perl을 배제했는지 이해할 수 없기 때문에(그들은~이다기본 쉘 도구) 아마도 당신은 공정한 게임도 고려하지 않을 것입니다 ...