[talk] insert line after matched pattern (fwd)
N.J. Thomas
njt at ayvali.org
Wed Aug 19 12:30:01 EDT 2015
* <freebsd at fongaboo.com> [2015-08-19 11:59:25-0400]:
> Anyone know how to insert a line after a matched pattern using sed,
> awk or any other method that gets the job done? Any tutorials I find
> seem not to work in BSD due to GNU sed vs. non-GNU?
The sed command to use is (a)ppend:
$ cat foo
line1
line2
line3
$ cat foo|sed '/^line2/a\
foo
'
line1
line2
foo
line3
Note that BSD version above (I'm running this on FreeBSD 10.1) requires
a new line after the backslash delimeter, whereas GNU sed doesn't:
$ cat foo|gsed '/^line2/a\foo'
line1
line2
foo
line3
You can even leave out the \ after the a with GNU sed, and it won't
complain (unless you run with --posix).
hth,
Thomas
More information about the talk
mailing list