2013-02-22 86 views
0

我試圖找出與其他文件中找到的單詞對應的文件中的所有行,然後創建第三個新文件與其中的線條。 例如:在一個文件中查找單詞,並抓住他們在另一個文件中的行:Bash腳本

File 1 
rs2132k34hh 
rs234hk5kk4 
rsklhh32432 

File 2 
Info more info otherstuff  rs2132k34hh somethings 
Info more info otherstuff rs234hk5kk4 somethings 
Info more info otherstuff  rsklhh32432 somethings 
Info more info otherstuff rs234hk5kk4 somethings 

我認爲它woud是沿

egrep -l "(\s(rs\S+))" /filethatIamsearching.txt > newfile.txt 

行的東西從文件的grep的RS和發送到新的文件

但我知道,這ISN這不應該是命令中的一切。 有人能指引我正確的方向嗎?

回答

1

試試這個:

grep -F -f file1 file2 >newfile.txt 
+0

這似乎是工作。你介意解釋你推薦的-F -f命令嗎? – Stephopolis 2013-02-22 15:07:34

+0

'-f'從文件(file1)中讀取模式,'-F'看起來像固定字符串模式。 '人grep'會給你更多的信息。 – Kent 2013-02-22 15:12:47

+0

如果'file2'中有一行'foors234hk5kk4',這將不起作用。它會被錯誤地匹配。這就是爲什麼你需要'-w'來匹配單詞。 – dogbane 2013-02-22 15:26:39

0

嘗試:

grep -wf file1 file2 > file3 

你可以告訴grep使用-f選項從文件中讀取模式。您也可以使用-w選項僅搜索整個單詞。

+0

這似乎並沒有工作。它保持運行,但沒有任何內容被添加到新文件。我讓它跑了7或8分鐘無濟於事。 – Stephopolis 2013-02-22 15:05:34

+0

適合我。不知道你的問題是什麼。 – dogbane 2013-02-22 15:26:11

+0

如果文件相當大,會出現問題嗎? – Stephopolis 2013-02-22 15:29:47

相關問題