파일에 grep 명령을 사용하는 방법

파일에 grep 명령을 사용하는 방법

여러 숫자가 포함된 텍스트 파일이 있습니다. 다음은 몇 가지 샘플 번호입니다.

+-----------+
|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     |

관련 정보