파일에 File1.txt라는 원시 데이터가 있습니다.
Colt McCoy QB CLE 135 222 1576 6 9 60.8% 74.51
Josh Freeman QB TB 291 474 3451 25 6 61.4% 95.9
Matt Cassel QB KC 262 450 3116 27 7 58.2% 93.0
Michael Vick QB PHI 233 372 3018 21 6 62.6% 100.2
Matt Schaub QB HOU 365 574 4370 24 12 63.6% 92.0
파일 2.txt에는 한 줄에 하나씩 이름 목록이 있습니다.
Josh
Matt
이름과 줄 번호를 출력하고 싶습니다. 위의 예에서는 다음과 같습니다.
Josh: 2
Matt: 3,5
이름과 줄 번호 목록을 제공하는 명령이 있는데 위에서 요구한 형식으로 인쇄하고 싶습니다. 내 현재 명령은
awk '{print $1, NR}' file1.txt | grep -f file2.txt
보여주다
Josh 2
Matt 3
Matt 5
원하는 형식으로 인쇄하려면 어떻게 해야 합니까?
답변1
awk
혼자서 이 작업을 수행할 수 있습니다.
awk 'NR==FNR{seen[$1]=seen[$1]","NR; next};
{if ($1 in seen){printf("%s: %s\n", $1, substr(seen[$1], 2))}}' file2 file1
답변2
당신은 그것을 사용할 수 있습니다 diff -y file1 file2
.
두 파일을 나란히 출력합니다. 또한 출력을 구문 분석하기 위한 다른 옵션도 있습니다. 확인하다매뉴얼 페이지더 많은 선택을 위해.