【发布时间】:2020-04-21 12:35:57
【问题描述】:
Linux 新手,通过 VirtualBox 在运行 Ubuntu 的 VM 上练习 bash。 有一个命令可以打印文本文件中每一行的第一个字符,从而产生正确的输出:
cut -f 1- -d "^M" sample.txt | cut -c 1
但是,当我从终端复制命令并使用 Ctrl+Shift+c 和 Crtl+Shift+v 粘贴回终端然后执行时,它给了我以下错误:
cut: the delimiter must be a single character
编辑:我通过按住 Ctrl+v 并按回车键输入“^M”
编辑:没有意识到 Cut 命令在每一行都运行,所以给出的示例中命令的第一部分是无用的,即使问题仍然有效。
【问题讨论】:
-
你确定没有前导是尾随空格还是换行符?
-
删除
cut -f 1- -d "^M"。只是cut -c1 sample.txt。如果"^M"真的是一个回车符,那么cut -f 1- -d "^M"是一种删除dos 行结尾的有趣方式。 -
如何输入
"^M"?您是键入^后跟M还是按CTRL+M?请在您的问题中回答这个问题。 -
绝对没有前导尾随空格或换行符,我认为 Bodo 是在正确的轨道上,当我输入 ^M 而不是 Crtl+v+CarriageReturn 我得到同样的错误,如果有人能阐明为什么发生这种情况然后我会接受答案
标签: linux bash terminal ubuntu-18.04 cut