biznez
biznez

Reputation: 4021

Get the first n lines matching a certain pattern (with Linux commands)

I have a giant file where I want to find a term model. I want to pipe the first 5 lines containing the word model to another file. How do I do that using Linux commands?

Upvotes: 4

Views: 7130

Answers (4)

scragar
scragar

Reputation: 6824

man grep mentions that

 -m NUM, --max-count=NUM
          Stop reading a file after NUM matching lines.  If the  input  is
          standard  input  from a regular file, and NUM matching lines are
          output, grep ensures that the standard input  is  positioned  to
          just  after the last matching line before exiting, regardless of
          the presence of trailing context lines.  This enables a  calling
          process  to resume a search. 

so one can use

grep model old_file_name.txt -m 5 > new_file_name.txt

No need for a pipe. grep supports almost everything you need on it's own.

Upvotes: 16

HowdyHowdyHowdy
HowdyHowdyHowdy

Reputation: 1211

cat file | grep model | head -n 5 > outfile.txt

Upvotes: -1

Gavin H
Gavin H

Reputation: 10482

grep model [file] | head -n 5 > [newfile]

Upvotes: 7

firedfly
firedfly

Reputation: 2369

grep "model" filename | head -n 5 > newfile

Upvotes: 2

Related Questions