여러 숫자가 포함된 텍스트 파일이 있습니다. 다음은 몇 가지 샘플 번호입니다.
+-----------+
|NUMBER |
+-----------+
| 75705310 |
| 75779034 |
| 75908237 |
| 75681768 |
원격 서버의 다른 파일에서 이 숫자를 가져와야 합니다. 출력은 숫자와 개수가 포함된 아래와 같아야 합니다.
1 75964761
2 75964261
이것은 나의 시도이지만 결과가 나오지 않습니다.
grep -f /data/session_1.log log_20221001 | sort | uniq -c
그런데 아래와 같이 사용하면 결과를 얻을 수 있는데, session_1.log에서 전체 목록을 확인해야 합니다.
grep -o '75964761' log_20221001 | sort | uniq -c
1 75964761
누구든지 이 문제를 해결하도록 도와줄 수 있나요..
답변1
Per grep
의 매뉴얼 페이지
grep -f /data/session_1.log log_20221001
이 서명을 사용하세요
grep [OPTION...] -f PATTERN_FILE ... [FILE...]
따라서 한 줄에 하나씩 grep
에서 패턴을 가져옵니다 /data/session_1.log
. 로그이기 때문에 스키마가 아닌 데이터가 있다고 가정합니다.
대신 다음을 시도해 보세요(고유하지 않은 데이터를 확보하기 위해 마지막 줄을 추가했습니다).
$ cat file
+-----------+
|NUMBER |
+-----------+
| 75705310 |
| 75779034 |
| 75908237 |
| 75681768 |
| 75681768 |
$ sort file | uniq -c
2 +-----------+
2 | 75681768 |
1 | 75705310 |
1 | 75779034 |
1 | 75908237 |
1 |NUMBER |