2012-10-02 16 views
8

誰かがこれを手伝ってくれることを願っていました。私は、特定の文字列、すなわち "コンピュータ"(txtファイル内の "コンピュータ"の最初の出現)を含む最初の行をどのように表示するかを調べようとしています。私はgrepを使ってこれを行うのが好きです。特定の文字列を含む最初の行をテキストファイルunixに表示する方法は?

私はgrep "computer" somefile.txt

は、「コンピュータ」を含む行のすべてを表示していました知っています。 私は勉強したいと思っています。もし誰かが私が聞きたいと思う代替方法があれば!

Thxみんな

+1

「含む」または「含まない」という意味ですか?あなたの質問は、両方について話すようです... – singpolyma

+0

'-n'はファイル内に行番号を表示します。すべての答えを補うだけです。 – squiguy

+0

@squiguyそして、-A 3はマッチの後に3行を出力します。 grepのmanページを書き直していません:-) –

答えて

14

は、お使いのディストリビューションや場合http://www.gnu.org/software/grep/は、これをサポートしながら、grepのはとても非標準の国連全体*のxのあること

grep -m 1 "computer" somefile.txt 

grepのノートのマッチカウントオプションを使用しますこれはうまくいきません。

+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 grepの意味:「一致しません」 – Sandro

+0

ありがとう私はあなたの前に何を意味するのかを見ています – Masterminder

10

パイプはあなたの友達です:

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

これはうまく動作します – Masterminder

関連する問題