如何将文本行截断为最多 N 个字符?

Tot*_*tor 73 text-processing cut

给定一个文本文件或命令的输出,我如何截断它,以便每行长于N字符(通常N=80在终端中)都缩短到N最大字符数?

Tot*_*tor 111

您可以使用cut来实现此目的(使用N=80此处):

some-command | cut -c -80
Run Code Online (Sandbox Code Playgroud)

或者

cut -c -80 some-file.txt
Run Code Online (Sandbox Code Playgroud)

将 80 替换为您要保留的字符数。

多字节字符可能无法正确处理,具体取决于您的实现。


Dale Anderson建议使用some-command | cut -c -$COLUMNSwhich 截断当前终端宽度。

  • 等效形式 `cut -c 1-80` 可能更容易理解。 (14认同)
  • 如果没有 `1`,很容易错过 80 之前的 `-`,所以我同意它更有意义。 (4认同)
  • 我喜欢使用`some-command | cut -c -$COLUMNS` 使用整个终端宽度,无论当前是什么。 (4认同)
  • 固定命令语法,您必须提供一个范围:“some-command | cut -c *1-80*” (2认同)