MacOSX 10.6.7 在 1024 个字符处切断标准输入

Ago*_*ath 9 terminal cat buffer macos

我写了一个小的 perl 脚本,我调用如下:

perl -pe'...' <a
Run Code Online (Sandbox Code Playgroud)

我想从网络浏览器(准确地说是整个 wordpress 博客条目)复制输入文件“a”的内容。复制部分工作正常,完整内容显示在 ClipMenu 中。但是当我尝试使用 cat 将其粘贴到文件中并重定向时:

cat >a
Run Code Online (Sandbox Code Playgroud)

它正好发出 1024 个字符,然后停止接受输入 - 只有 CTRL-C 可以提供帮助。我试过只粘贴 1023 个字节/字符,这很有效,按 Enter 后,我可以毫无问题地将它输入到文件中。但是如果我在一行中输入 1024 个字符,除了 CTRL-C 之外没有其他办法。

我试过 iTerm 和 Terminal.app,两者都显示出完全相同的行为。我已经尝试过 macports 和 /bin 中的 bash,结果完全相同。我什至试过 dd:

dd bs=1M of=a
Run Code Online (Sandbox Code Playgroud)

到完全相同的结果。似乎没有任何帮助。

我一无所知 - 为什么会发生这种情况?我怎样才能轻松地复制粘贴到 Mac OS X 上的文件中,并且可以确保内容不会以任何方式改变?

小智 5

% pbpaste | perl -e '...'

您正在达到 tty 的最大行长。如果您将 tty 切换为离线模式,它将起作用。

但是 pbpaste 确实是您想要的。

  • 我对这种'switch tty out of line mode' 感兴趣 - 怎么做呢?你能给一些指点吗? (2认同)