Removing trailing new line after printing on Mac OS X zsh

953 Views Asked by At

i'm trying to print stdin without the trailing new line that appears after using cat, grep, awk etc. (Mac OS X zsh) Unfortunately, echo -n doesn't work, it prints some weird character.

Do you have any idea on the matter ? Thanks.

1

There are 1 best solutions below

0
On

From man zshoptions:

PROMPT_SP <D>
              Attempt  to  preserve  a  partial  line (i.e. a line that did not end
              with a newline) that would otherwise be covered up by the command prompt
              due to the PROMPT_CR option.  This works by outputting some
              cursor-control characters,
              including a series of spaces, that should make the terminal wrap to the
              next line when a partial line is present (note that this is only 
              successful if your terminal has automatic margins, which is typical).

              When a partial line is preserved, by default you will see an inverse+bold
              character at the end of the partial line:  a "%" for a normal user or a
              "#" for root.  If set, the shell parameter PROMPT_EOL_MARK can be used
              to customize how the end of partial lines are shown.

              NOTE: if the PROMPT_CR option is not set, enabling this option will have
              no effect.  This option is on by default.

Add this to your .zshrc to change the behavior. And note that this is a feature by design, not a bug.

export PROMPT_EOL_MARK=''