Introduction
Introduction Statistics Contact Development Disclaimer Help
Title: Fun tip #3: Split a line using ed
Author: Solène
Date: 04 December 2018
Tags: fun-tip unix openbsd
Description:
.Dd December 04, 2018
.Dt "Splitting a line using ed"
In this new article I will explain how to programmaticaly
a line (with a newline) using ed.
We will use commands sent to ed in its stdin to do so. The logic is to
locate the part where to add the newline and if a character need to be
replaced.
.Bd -literal -offset indent
this is a file
with a too much line in it that should be split
but not this one.
.Ed
In order to do so, we will format using printf(1) the command list
using a small trick to insert the newline. The command list is the
following:
.Bd -literal -offset indent
/too much line
s/that /that\
,p
.Ed
This search the first line matching "too much line" and then replaced
"that " by "that\n", the trick is to escape using a backslash so the
substitution command can accept the newline, and at the end we print
the file (replace ,n by w to write it).
The resulting command line is:
.Bd -literal -offset indent
$ printf '/too much line\ns/that /that\\\n\n,n\n' | ed file.txt
81
> with a too much line in it that should be split
> should be split
> 1 this is a file
2 with a too much line in it that
3 should be split
4 but not this one.
> ?
.Ed
You are viewing proxied material from dataswamp.org. The copyright of proxied material belongs to its original authors. Any comments or complaints in relation to proxied material should be directed to the original authors of the content concerned. Please see the disclaimer for more details.