在OSX终端中:
du -h | sort -nr
-bash: sort: command not found
which sort
/usr/bin/sort
奇怪的是:我尝试重现错误,似乎完全是随机的。我的PATH回应道:
/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/X11/bin:/usr/local/git/bin:/usr/texbin:/Users/sytycs/.rvm/bin
只有当管道发生时才会发生这种情况,grep
,more
,less
等。
知道是什么导致了这个吗?
答案 0 :(得分:35)
这可能是因为您使用非美国布局的键盘布局(也发生在我身上)。在德语布局中,管道输入为 Alt + 7 ,因此按 Alt + Space 之后,这将产生non-breaking space。
快速解决方案:添加行
"\xC2\xA0": " "
到~/.inputrc
。这会将不间断的空间映射到正常的空间,以解决问题。
如果你想要更多细节(或者如果你对如何追踪这类问题感兴趣,我前段时间写过a blog post)。
答案 1 :(得分:27)
那个空间不是空间。擦除并替换它。
答案 2 :(得分:0)
〜/ .inputrc的技巧对zsh不起作用。但是在这里你可以配置iTerm在你键入alt + space时发送一个空格,例如
答案 3 :(得分:0)
在进行管道传输时,Bash对空间非常敏感。全部删除 。 通过运行以下命令,我遇到了同样的问题:
|awk '{$1=$1};1' | tr '[:upper:]' '[:lower:]' | sort | uniq
| awk '{ print length, $0 }' | sort -n -s | cut -d" " -f2- > dest_file
错误如下:
zsh: command not found: tr
zsh: command not found: sort
然后我删除了所有空格并解决了该问题:
|awk '{$1=$1};1'|tr '[:upper:]' '[:lower:]'|sort|uniq|awk '{ print length, $0
}'|sort -n -s|cut -d" " -f2- >