active-users.txt와 all-user-info.txt라는 두 개의 텍스트 파일이 있다고 가정해 보겠습니다.
active-users.txt에는 숫자로 된 사용자 ID만 포함됩니다.
all-user.txt에는 사용자 ID 및 기타 정보 필드가 포함되어 있습니다.
내가 해야 할 일은 active-users.txt의 각 사용자 ID에 대한 전체 정보 줄을 포함하는 세 번째 텍스트 파일을 만드는 것입니다...
Bash 스크립트와 명령줄에서 다음을 시도했습니다.
for i in $(< active-users.txt)
do
grep $i all-users.txt >> active-user-info.txt
done
나를 미치게 만드는 문제는 active-user-info.txt 출력 파일에 항상 all-user-info.txt의 모든 내용이 포함되어 있다는 것입니다. 그리고 나는 여기에 activeUsers의 userID가 포함된 행만 포함되기를 원합니다. txt
내가 무엇을 놓치고 있나요?
답변1
가설활성 사용자.txt빈 줄 없음:
grep -f active-users.txt all-users.txt > active-users-info.txt
만약에활성 사용자.txt하나 이상의 빈 줄이 있습니다:
grep '.' active-users.txt | grep -f - all-users.txt > active-users-info.txt
답변2
이것은 내 테스트 파일에서 작동합니다.
while read LINE; do
grep "$LINE" all-users.txt >>active-users-info.txt
done <active-users.txt