works: echo "abc-123456789 abc def" | sed -n ':l h; /^[^ ]\{6\}./ b w; s/\(.\{6\}\).*/\1/; T f; s/\(.*\) .*/\1/; T f; p; g; s/.\{1,6\} *\(.*\)/\1/; t l; q; :w s/\(.\{6\}\).*/\1/; p; g; s/.\{6\}\(.*\)/\1/; b l; :f g; p' :l h; /^[^ ]\{6\}./ b w; s/\(.\{6\}\).*/\1/; T f; s/\(.*\) .*/\1/; T f; p; g; s/.\{1,6\} *\(.*\)/\1/; t l; q; :w s/\(.\{6\}\).*/\1/; p; g; s/.\{6\}\(.*\)/\1/; b l; :f g; p; does NOT work: why not? echo "abc-123456789 abc def" | sed -n ':l h; s/\([^ ]\{6\}\)..*/\1/; t w; s/\(.\{6\}\).*/\1/; T f; s/\(.*\) .*/\1/; T f; p; g; s/.\{1,6\} *\(.*\)/\1/; t l; q; :w p; g; s/.\{6\}\(.*\)/\1/; b l; :f g; p' :l h; s/\([^ ]\{6\}\)..*/\1/; t w; s/\(.\{6\}\).*/\1/; T f; s/\(.*\) .*/\1/; T f; p; g; s/.\{1,6\} *\(.*\)/\1/; t l; q; :w p; g; s/.\{6\}\(.*\)/\1/; b l; :f g; p;