기본 셸 도구(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 한 줄 문은 예상되는 결과를 제공합니다.
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을 제외했는지 이해할 수 없기 때문에예기본 쉘 도구), 어쩌면 awk도 공정한 게임이라고 생각하지 않을 수도 있습니다...