在* nix中,如何显示(cat)没有换行的文件:应剪切较长的行以使其适合屏幕的宽度。
答案 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)