问题标签 [less-unix]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
4 回答
1725 浏览

linux - 在每行之间添加额外的换行符

我正在分析来自我的服务器的日志文件(特别是那里的几行)。但这些行的长度约为 1000 到 2000 个字符。

这是一个示例,这些行是如何与以下命令一起出现grepless

输出:

但是我很难将它们分开,因为它们是满屏的文字(也不令人赏心悦目)。我想让我的输出像打击:

我修改了上面的命令sed

它没有用,所以我尝试了tr下一个:

它也对我不起作用。我在这里想念什么?

0 投票
2 回答
357 浏览

shell - 为什么我们可以重定向“less”命令的输入,但是没有任何参数就不能运行less?

据我在编程中学到的,当我想将输入重定向添加到我的程序时,我编写我的程序,因为它在执行时等待用户的输入(使用std::cin或类似的东西)。但我对更少的命令感到困惑。

我们都知道我们可以这样做:

但是当我们尝试执行

没有任何参数我们会得到一个错误。怎么来的 ?!

0 投票
1 回答
682 浏览

bash - 终端程序如何向屏幕添加滚动?

less、more 或 vi 程序如何在不清除屏幕的情况下在终端屏幕上添加滚动部分,之后又如何消失?

如果我从脚本或脚本退出的方式运行它,是否有任何方法可以在特定时间内运行更少?

0 投票
2 回答
2737 浏览

c - 'less' linux 命令的替代程序/使 'less' 安全

我想为 Linux 编写一个交互式程序,例如“less”命令。原因我不能在我的设置中使用 less,因为你可以在 less 提示符 '!cmd' 中执行 shell 命令,这对于任何生产机器来说都是一个主要的安全风险。

我的首选语言是 C,但是,由于我手头的时间,如果有人能推荐任何其他类似的程序也会很棒。

我知道一种选择是浏览较少的源代码,但看起来这在短时间内也不是很直接。

0 投票
1 回答
59 浏览

perl - 使用 perl 调试器限制输出

我正在使用 perl 调试器来分析一个大的散列。但是,当我显示它(使用x)时,它会填满显示,我看不到哈希的开始。有没有办法通过类似的东西来管道输出less

0 投票
1 回答
657 浏览

python - Python shell 脚本使用 +F 选项打开更少

我有以下 Python 脚本,除了以下内容外,一切似乎都按照我的意愿工作:

  • less 使用 -F 选项打开,这将像 Tail 一样跟随文件。
  • 检查(移动)用户必须按 ctrl + c 发送中断的文件。
  • 当发送 ctrl +c (中断)时,这将发送到 python 脚本,这将终止 less 进程。

有没有办法能够在较少的窗口中使用 ctrl +c 并且在执行此操作时不终止脚本?

如果使用我当前的脚本没有一个很好的解决方案,也许有人可以建议我一个更合适的解决方案,语言并不重要。

干杯,

菲利普

解决方案:

0 投票
1 回答
119 浏览

r - 使用 R 浏览 R 输出

当我在 R 中(在标准命令行界面中)显示一个对象,并且该对象很长时,R 用消息剪切它

但仍然设法弄乱我的终端。

对我来说,所需的行为如下:如果输出的行数超过 N,则输出将存储到临时文本文件中,并使用 less 显示文本文件。

解决方案原型使用capture.output

它或多或少地做了我想要的,但是(i)与终端共享 max.print (不好!)并且(ii)当输出太大时不会自动运行。

有什么办法可以做到这一点?至少解决上面的(i)会有很大帮助(这样 capture.output 没有限制或有与终端不同的限制)。

0 投票
0 回答
3841 浏览

linux - less:如何水平滚动一屏

使用 unix 命令行工具less,我如何水平滚动?我需要向右或向左滚动一个(或半个)屏幕

0 投票
1 回答
232 浏览

linux - “少”消耗大量 RAM 用于 gzip 文件的管道输出,为什么?

请原谅我没用catecho前期,但是在less~2GB .gz 文件上运行时,我看到 ~25GB 的 RAM 被消耗(尽管输出被输送到 awk 并在那里消耗):

我预计上面不需要任何 RAM 就可以完成,但令我惊讶的是,它在 2.5 小时后看起来像这样(到 89.8% 读取 .gz 时):

我会尝试一些其他选项(比如用直接gzip -dc或重写我的命令zcat)看看这些是否有帮助,但是如果有人可以让我知道为什么用 less (或任何其他命令)会发生这种情况,无论它是已知的less还是已bash修复的错误在以后的版本中?也许一些shell技巧可以迫使更少的行为正常?

PS stats.gz 是 25261745373 字节未压缩(5 次环绕 MAX_INT):

0 投票
1 回答
1416 浏览

python - 调用外部 egrep 和 less 时子进程非常慢

我正在尝试构建一个 python 脚本,该脚本将允许我在egrep -v属性上动态构建并将输出通过管道传输到更少(或更多)。
我想使用外部 egrep+less 的原因是因为我正在处理的文件是非常大的文本文件(500MB+)。首先将它们读入列表并通过 Python 本地处理所有内容非常慢。

但是,当我使用 os.system 或 subprocess.call 时,现在一切都很慢,我想退出较少的输出并返回到 python 代码。

我的代码应该像这样工作:
1. ./myless.py messages_500MB.txt
2. 显示较少 -FRX 的 messages_500MB.txt 输出(完整文件)。
3.当我按'q'退出less -FRX时,python代码应该接管并显示提示用户输入要排除的文本。用户输入它,我将其添加到列表中
4. 我的 python 代码构建 egrep -v 'exclude1' 并将输出通过管道传输到更少
5. 用户重复步骤 3 并输入另一个要排除的内容
6. 现在我的 python 代码调用 egrep -v 'exclude1|exclude2' messages_500MB.txt | less -FRX
7. 并且该过程继续

但是,这并没有按预期工作。
* 在我的 Mac 上,当用户按 q 退出 less -FRX 时,显示 raw_input 提示需要几秒钟
* 在 Linux 机器上,我收到大量的“egrep:写入输出:损坏的管道”
* 如果,(仅限 Linux)在 less -FRX 中,我按 CTRL+C,由于某种原因退出 less -FRX 会变得更快(如预期的那样)。在 Mac 上,我的 python 程序中断

这是我的代码示例:

任何帮助将非常感激