我有一个超过40.000行(file1)的文件,我想提取匹配在file2(约6000行)中的模式的行.我使用这样的grep,但它是非常慢的:
grep -f file2 file1>出
grep -f file2 file1>出
有没有更快的方法来使用awk或sed?
以下是我的文件中的一些摘录:
- File1:
- scitn003869.2| scign003869 CGCATGTGTGCATGTATTATCGTATCCCTTG
- scitn007747.1| scign007747 CACGCAGACGCAGTGGAGCATTCCAGGTCACAA
- scitn003155.1| scign003155 TAAAAATCGTTAGCACTCGCTTGGTACACTAAC
- scitn018252.1| scign018252 CGTGTGTGTGCATATGTGTGCATGCGTG
- scitn004671.2| scign004671 TCCTCAGGTTTTGAAAGGCAGGGTAAGTGCT
- File2:
- scign000003
- scign000004
- scign000005
- scign004671
- scign000013
`
尝试grep -Fwf file2 file1>出
-F选项指定纯字符串匹配,所以应该更快,而不必使用正则表达式引擎.