Isso funcionou para mim com arquivos de teste
while read LINE; do
grep "$LINE" all-users.txt >>active-users-info.txt
done <active-users.txt
Suponha que eu tenha dois arquivos de texto - active-users.txt e all-user-info.txt
active-users.txt contém apenas userIDs numéricos.
all-users.txt contém userIDs e campos de informações adicionais.
O que eu preciso fazer é criar um terceiro arquivo de texto que contenha a linha completa de informações para cada userID em active-users.txt ...
Eu tentei o seguinte, em um script bash e na linha de comando:
for i in $(< active-users.txt)
do
grep $i all-users.txt >> active-user-info.txt
done
O bit quebrado que está me deixando louco é que o arquivo de saída active-user-info.txt sempre contém todo o conteúdo de todo o user-info.txt - e eu esperaria que ele contivesse apenas as linhas, incluindo os userIDs em activeUsers.txt
O que estou perdendo?
Isso funcionou para mim com arquivos de teste
while read LINE; do
grep "$LINE" all-users.txt >>active-users-info.txt
done <active-users.txt
Assumindo que active-users.txt não tenha linhas em branco:
grep -f active-users.txt all-users.txt > active-users-info.txt
Se active-users.txt tiver uma ou mais linhas em branco:
grep '.' active-users.txt | grep -f - all-users.txt > active-users-info.txt
Tags grep text-processing