假设我有两个文本文件 - 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