2012-10-02 35 views
8

希望有人可以幫助這個。我想弄清楚如何顯示包含某個字符串的第一行,即「計算機」(在txt文件中第一次出現「computer」)。我寧願使用grep來執行此操作。如何在文本文件unix中顯示包含特定字符串的第一行?

我知道grep "computer" somefile.txt

將顯示所有的線,包括「計算機」。 我渴望學習,如果有人有其他方法我想聽!

Thx everyone

+1

你的意思是「包含」或「不包含」?你的問題似乎在談論這兩個... – singpolyma

+0

'-n'將在文件中打印行號。只是對所有答案的補充。 – squiguy

+0

@squiguy並且-A 3將在比賽結束後打印3條線,那麼是什麼。我們不會重寫grep的手冊頁:-) –

回答

14

使用grep

grep -m 1 "computer" somefile.txt 

注意的grep跨越聯合國非標準的匹配計數選項* X是如此,而http://www.gnu.org/software/grep/支持這一點,如果你的發行版或unix不會不會工作。

+0

謝謝這個作品 – Masterminder

+0

酷 - 和正如其他人展示的 - 有多種方法可以做到這一點 –

+0

請注意,您的'grep'版本中可能不存在此選項,因爲它是非標準的:http://pubs.opengroup.org/onlinepubs/007904875 /utilities/grep.html – singpolyma

-1

這功課嗎?

grep -v "computer" somefile.txt | head -n 1 

想到最快。

+0

我只是在嘗試練習。順便說一句,只顯示文件的第一行...不是第一次出現的「電腦」 – Masterminder

+0

這是因爲「-v」。 -v in grep意思是:「不匹配」 – Sandro

+0

非常感謝我看你以前的意思 – Masterminder

10

管道是你的朋友:

grep "computer" somefile.txt | head -n1 
+0

不錯,這個也可以運行 – Masterminder

相關問題