Don't use sed
, use cut
:
grep .... | cut -c 1-N
If you MUST use sed
:
grep ... | sed -e 's/^\(.\{12\}\).*/\1/'
colrm x
For example, if you need the first 100 characters:
cat file |colrm 101
It's been around for years and is in most linux's and bsd's (freebsd for sure), usually by default. I can't remember ever having to type apt-get install colrm
.
colrm
understands utf8.
don't have to use grep either
an example:
sed -n '/searchwords/{s/^\(.\{12\}\).*/\1/g;p}' file
Strictly with sed:
grep ... | sed -e 's/^\(.\{N\}\).*$/\1/'
To print the N first characters you can remove the N+1 characters up to the end of line:
$ sed 's/.//5g' <<< "defn-test"
defn
How about head ?
echo alonglineoftext | head -c 9
Success story sharing
cut
doesn't cut it whilesed
does.sed -r 's/^(.{12}).*/\1/'
.-r
is apparently available on Linux, but not on Mac.cut -c 1-N
(where N is a number) does work on my Cygwin installation (cygwin v. 2.6, cut v. 8.25) On OS X, usesed -E
rather thansed -r
, used elsewhere.