我一直在使用论坛上建议的各种格式,如下所示:
grep -f file1.txt file2.txt > ouput.txt
file1.txt
一列中包含 ID 列表,例如:
15002345234
15001234214
file2.txt
包含制表符分隔的列,其中一列包含 ID,其他列包含其他信息。
1500349850 1 3 father
我尝试过 shell 循环awk
以及sed
其他帖子中建议的命令。但本质上我只得到一个 ID 的结果:
150982309750 1 2 2 4
它也总是相同的,而输出中应该有很多结果,例如:
150982309750 1 2 2 4
150563524856 1 3 2 2
150864364612 2 1 2 2
有什么想法我做错了吗?
答案1
我会
- 添加
-w
仅匹配整个单词的选项 - 添加
-F
固定字符串(非正则表达式)匹配的选项 - 验证 file1 不使用
\r\n
行结尾——尾随\r
会导致匹配失败。检查这个head file1.txt | od -c
grep -wFf <(sed 's/\r$//' file1.txt) file2.txt