SED: How can I print every line after first instance of string using Sed?

4

1

I have a file with a similar format...

16:28 asdfasdf
16:29 4398upte
16:30 34liuthr
16:31 34tertio

How can I use SED to print out every line including and after the line with "16:30"?

The result would be...

16:30 34liuthr
16:31 34tertio

Right now, I am using sed as follows, but I have to manually find the first line's line number e.g. "562697":

sed -n '562697,$p'

barrrista

Posted 2013-03-06T22:42:37.097

Reputation: 1 519

Answers

7

Addresses in sed can be either line numbers or patterns. Try this:

sed -n '/16:30/,$p'

If the pattern contains a /, you can escape it with a \. For example, to search for 16/30 instead of 16:30, try this:

sed -n '/16\/30/,$p'

Nicole Hamilton

Posted 2013-03-06T22:42:37.097

Reputation: 8 987

What if I needed to search 16/30? I'm not sure how to modify the syntax in this case. Thanks! – barrrista – 2013-03-07T00:01:05.657

@barrrista I've edited my answer to show how to escape the character with a backslash. Hope this helps. – Nicole Hamilton – 2013-03-07T00:12:15.387

5

Use a regular expression in the address:

sed -n '/^16:30/,$p'

or

sed '/^16:30/,$!d'

choroba

Posted 2013-03-06T22:42:37.097

Reputation: 14 741