Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/26.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Linux 无换行的cat文件_Linux_Unix_Shell - Fatal编程技术网

Linux 无换行的cat文件

Linux 无换行的cat文件,linux,unix,shell,Linux,Unix,Shell,在*nix中,如何显示(cat)没有换行的文件:应剪切较长的行,使其适合屏幕宽度。您可能正在查找: 这会非常积极地重新格式化您的文本,因此它可能比您想要的做得更多 或者,cut命令可以将文本剪切到特定的列宽,丢弃右边距以外的文本: cat file | cut -c1-80 watch 'bash -c "cut -c -$(($COLUMNS-10)) file"' 另一个方便的选项是less-S命令,它在全屏窗口中显示一个文件,左/右滚动显示长行: less -S file 请注意,c

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

您可能正在查找:

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

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

cat file | cut -c1-80
watch 'bash -c "cut -c -$(($COLUMNS-10)) file"'
另一个方便的选项是
less-S
命令,它在全屏窗口中显示一个文件,左/右滚动显示长行:

less -S file

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

这似乎对我有用:

watch 'bash -c "cut -c -$COLUMNS file"'
为了进行测试,我添加了一个右边距:

cat file | cut -c1-80
watch 'bash -c "cut -c -$(($COLUMNS-10)) file"'

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

正如其他人所说,答案是
cut-c…
,但为了给它添加一些动态,我更喜欢这样:


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

以较少的时间切换长换行。默认设置为换行

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

使用
cut
时,不考虑制表符被视为单个字符
\t
,而是将制表符打印为8个空格。因此,带有选项卡的文件将在不同的列上剪切

less-S
以最佳方式截断文本,也可以在有选项卡的情况下截断文本,但这样就不能用于以非交互方式打印“截断”文件

一个有效的解决方案是通过
展开
然后
剪切
输出将制表符转换为空格:
expand

事实上,它做的比我想要的更多:它连接行。实际上,我正在使用watch“cat file”查看文件的内容,所以我不能少用。cat file | cut-c1-80部分实现了这一目的。有没有办法将剪切调整到屏幕大小?您可以定义环境变量
$COLUMNS
试试
cut-c1-$COLUMNS file
Cool。“less-S”版本非常棒。在运行
less
时,您可以使用组合键
-S
切换换行。当我运行您的脚本
watch./colscript
时,我看到80显示出来。当我通过拖动窗口的边缘来改变宽度时(我正在使用PuTTY),数字会随之改变。你看到了什么?我什么也没看到,但我找到了原因:不同的bash版本。注意./colscript在bash 4.0(我的计算机)上工作,但在bash 3.0(远程计算机)上不工作/colscript在这两个版本中都不起作用。
echo$BASH_VERSION
给了我“3.2.48(1)-release”。从命令行运行
/colscript
会回显空行的原因是,
$COLUMNS
仅为交互式shell填充。您可以尝试在
/colscript
的第一行末尾添加
-i
,这样您就有了
#/bin/bash-i
扩展
是一个很大的帮助;谢谢,我只是在努力解决这个问题(用标签)。很高兴我滚动到了底部!您还可以使用
-S
调用
less
,作为选项:
less-S文件
或将其包含在您的环境中:
export less=“-S”
(加上其他选项)。在这两种情况下,如果您愿意,您仍然可以在切换运行后使用它。