cat文件没有换行

时间:2009-10-23 23:20:14

标签: linux unix shell

在* nix中,如何显示(cat)没有换行的文件:应剪切较长的行以使其适合屏幕的宽度。

5 个答案:

答案 0 :(得分:41)

您可能正在寻找fmt

fmt file

这非常积极地重新格式化您的文本,因此它可能比您想要的更多。

或者,cut命令可以将文本剪切为特定列宽,丢弃右边距之外的文本:

cat file | cut -c1-80

另一个方便的选项是less -S命令,它在一个全屏窗口中显示一个文件,左/右滚动表示长行:

less -S file

答案 1 :(得分:21)

请注意cut接受文件名作为参数。

这似乎对我有用:

watch 'bash -c "cut -c -$COLUMNS file"'

为了测试,我添加了一个右边距:

watch 'bash -c "cut -c -$(($COLUMNS-10)) file"'

当我调整终端大小时,截断已更新为匹配。

答案 2 :(得分:6)

正如其他人所说,答案是cut -c ...,但为了增加一些动态,我更喜欢这个:

cat file.txt |cut -c -$(tput cols)

答案 3 :(得分:2)

切换long-line-wrap in less。默认是换行。

- `less file`
- in file type `"-S"` to toggle to truncate on line width
- to toggle back `"-S"` again.

答案 4 :(得分:2)

cut的使用没有考虑标签被视为单个字符\t,但它们被打印为8个空格。因此,带有标签的文件将在不同的感知列中被剪切。

less -S最佳地截断文本,也存在标签,但AFAIK不能用于非交互式打印"切断"文件。

一个可行的解决方案是通过expand然后cut输出将标签转换为空格:     expand < file | cut -c -$(tput cols)