Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/bash/17.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
在显示之前,Bash测试文件的有效(分页)行_Bash_Less Unix - Fatal编程技术网

在显示之前,Bash测试文件的有效(分页)行

在显示之前,Bash测试文件的有效(分页)行,bash,less-unix,Bash,Less Unix,我刚刚创建了一个脚本来显示文件的内容,根据文件中的有效行数(换行后)使用cat或less。说清楚一点,我手头的东西很管用,我只是好奇有没有人手头有更好的东西 if[$(stat-c'%s'${ERRLOG})-gt 0];然后 回显“${ERRLOG}” 如果[-n“${COLUMNS}”-a“$(grep-o”{0,${COLUMNS}}”“${ERRLOG}”| wc-l)”-gt“${ROWS}”;然后 小于“${ERRLOG}” 其他的 cat“${ERRLOG}” fi fi 虽然我

我刚刚创建了一个脚本来显示文件的内容,根据文件中的有效行数(换行后)使用
cat
less
。说清楚一点,我手头的东西很管用,我只是好奇有没有人手头有更好的东西

if[$(stat-c'%s'${ERRLOG})-gt 0];然后
回显“${ERRLOG}”
如果[-n“${COLUMNS}”-a“$(grep-o”{0,${COLUMNS}}”“${ERRLOG}”| wc-l)”-gt“${ROWS}”;然后
小于“${ERRLOG}”
其他的
cat“${ERRLOG}”
fi
fi
虽然我很自豪使用
grep-o
,它将同一源代码行中的多个模式匹配分割为多个行,但我怀疑有更好的方法可以做到这一点,最好是不分析文件内容两次。也许是awk


由于使用了
$ROWS
$COLUMNS

less
具有内置功能,因此应归功于:

-F
-如果有一个屏幕

如果整个文件可以显示在第一个屏幕上,则导致
less
自动退出

始终要使用的选项可以在
$LESS
环境变量中设置

对于小于等于530的版本,必须另外使用
-X
/
--no init
选项;见:

如果使用
-F
且文件适合一个屏幕,则不要输出终端初始化序列


less
具有内置的功能:

-F
-如果有一个屏幕

如果整个文件可以显示在第一个屏幕上,则导致
less
自动退出

始终要使用的选项可以在
$LESS
环境变量中设置

对于小于等于530的版本,必须另外使用
-X
/
--no init
选项;见:

如果使用
-F
且文件适合一个屏幕,则不要输出终端初始化序列


这对我不起作用。它不打印任何东西就退出了。不管怎样,我还是投了赞成票,因为这可能是大多数人的正确答案。@memtha你有什么版本的
less
?旧版本可能还需要设置
-X
/
--no init
。小于436(c)1984-2009 Mark Nudelman。。。greenwoodsoftware.com/less。明威msys的那个。与
-X
配合使用。谢谢。
-X
是可移植的还是我必须测试更少的版本?@memtha它在不到530中被修复;我认为总是使用
-X
不会破坏东西。这对我不起作用。它不打印任何东西就退出了。不管怎样,我还是投了赞成票,因为这可能是大多数人的正确答案。@memtha你有什么版本的
less
?旧版本可能还需要设置
-X
/
--no init
。小于436(c)1984-2009 Mark Nudelman。。。greenwoodsoftware.com/less。明威msys的那个。与
-X
配合使用。谢谢。
-X
是可移植的还是我必须测试更少的版本?@memtha它在不到530中被修复;我认为总是使用
-X
不会破坏东西。