Bash
使用“grep”來匹配文件中的 ID 列表以匹配另一個文件
我一直在使用論壇上建議的各種格式,例如:
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
任何想法我做錯了什麼?
我會
- 添加
-w
僅匹配整個單詞的選項- 添加
-F
固定字元串(不是正則表達式)匹配的選項- 驗證 file1 沒有使用
\r\n
行尾——尾隨\r
會導致匹配失敗。檢查這個head file1.txt | od -c
grep -wFf <(sed 's/\r$//' file1.txt) file2.txt