17

In the OSX terminal :

du -h | sort -nr
-bash:  sort: command not found

which sort
/usr/bin/sort

The weird thing is: I tried reproducing the error and it seems to be totally random. My PATH echoed:

/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/X11/bin:/usr/local/git/bin:/usr/texbin:/Users/sytycs/.rvm/bin

This only occurs when piping and happens with grep, more, less etc. Any idea what is causing this?

wpp
  • 7,093
  • 4
  • 33
  • 65
  • take a look at this other post in superuser https://superuser.com/questions/78245/how-to-disable-the-option-space-key-combination-for-non-breaking-spaces – rmacian Feb 26 '19 at 12:33

4 Answers4

45

This likely happens because you use a keyboard layout with a non-US layout (happened to me too). On German layouts, the pipe is typed with Alt+7, so chances are high that you press Alt+Space afterwards, which will produce a non-breaking space.

A quick solution: Add the line

"\xC2\xA0": " "

to your ~/.inputrc (if you are using bash). This will map non-breaking spaces to normal ones which should solve the problem.

If you want more detail (or if you are interested in how you can track down these kinds of issues), I wrote a blog post about it some time ago.

Michael Trojanek
  • 1,813
  • 17
  • 15
37

That space is not a space. Erase and replace it.

Ignacio Vazquez-Abrams
  • 776,304
  • 153
  • 1,341
  • 1,358
  • hi, thanks for your reply. I was not sure what you meant with "erase and replace it", but I removed the space between the "|“ and “sort“ and it seems to be working. Could you explain why, though? – wpp Jan 01 '12 at 17:55
  • Because it's not a space, it only *looks* like one. – Ignacio Vazquez-Abrams Jan 01 '12 at 18:00
  • 1
    You may not be typing it consistently (e.g. Option-Space looks like a space, but isn't), or cutting/pasting or using history from an earlier mistyped version. – Gordon Davisson Jan 02 '12 at 00:16
  • 12
    I do this all the time. Mac keyboards (at least in some parts of the world) create the pipe-symbol with Alt+7 and immediately afterwards it's common to accidentally press Alt+Space, which causes the wrong character to be typed (not a space, but a hard-space or whatever they are called). – Manne Oct 03 '13 at 12:51
  • 6
    If you add `"\xC2\xA0": " "` to your `~/.inputrc` bash treats non-breaking spaces as normal ones. I [blogged about this](http://www.relativkreativ.at/articles/why-chaining-commands-with-pipes-in-mac-os-x-does-not-always-work) in more detail. – Michael Trojanek Jul 06 '14 at 11:58
0

The trick with ~/.inputrc doesn't work for zsh. But here you can configure iTerm to send a space when you type alt+space, for instance

Markus Herzog
  • 374
  • 5
  • 9
0

Bash is so sensitive to space when you are piping. Remove them all. I was facing the same problem by running this command:

|awk '{$1=$1};1' |  tr '[:upper:]' '[:lower:]' |  sort | uniq 
| awk '{ print length, $0 }' | sort -n -s | cut -d" " -f2- > dest_file

the errors were as here:

zsh: command not found:   tr
zsh: command not found:   sort

then I removed all the spaced and it got resolved:

|awk '{$1=$1};1'|tr '[:upper:]' '[:lower:]'|sort|uniq|awk '{ print length, $0 
}'|sort -n -s|cut -d" " -f2- >
Reihan_amn
  • 2,645
  • 2
  • 21
  • 21