标签: less-unix

退出后,xterm将页面从终端中减少

我经常使用less来查看文件,并想记住我刚刚在文件中看到的内容.但是,当我按q键退出时,我的xterm窗口删除了少显示文件的页面,只显示了我的命令提示符.

当我退出时,如何在终端上保持较少的输出?

linux bash xterm less-unix

5
推荐指数
1
解决办法
1020
查看次数

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

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

这里是线如何出来用一个例子grepless用下面的命令。

tail -n 1000 log.log | grep 'SOME_TEXT' | less
Run Code Online (Sandbox Code Playgroud)

输出:

random text SOME_TEXT another 1000 chars
random SOME_TEXT 2000 chars
text text SOME_TEXT 2000 chars
Run Code Online (Sandbox Code Playgroud)

但是我很难将它们分开,因为它们都是屏幕上的文字(对眼睛也不舒服)。我想让我的输出像打击一样:

random text SOME_TEXT another 1000 chars

random SOME_TEXT 2000 chars

text text SOME_TEXT 2000 chars
Run Code Online (Sandbox Code Playgroud)

我已经用sed以下命令修改了我的上述命令:

tail -n 1000 log.log | grep 'SOME_TEXT' | sed 's/\n/\n\n/' | less
Run Code Online (Sandbox Code Playgroud)

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

tail -n 1000 log.log | grep 'SOME_TEXT' | tr '\n' '\n\n' …
Run Code Online (Sandbox Code Playgroud)

linux grep sed tr less-unix

4
推荐指数
1
解决办法
1560
查看次数

如何在 LESS 中找到“/*”?

当我这样做时git diff HEAD^!(为了区分提交中的更改HEAD),输出将通过管道传输到LESS. 我需要搜索 diff 的内容/*(C 风格注释的开头)。我一直无法让这个工作。我按下键盘上的正斜杠键开始搜索。我试过了:

//*
//\*
/\/\*
Run Code Online (Sandbox Code Playgroud)

这些都不起作用(首先/是在 中启动搜索模式LESS)。

linux git less-unix

4
推荐指数
2
解决办法
4796
查看次数

如果更改在一个页面上,请不要自动终止git diff

如果我运行git diff,并且我的更改少于一页,则命令将自动退出.这是不受欢迎的,因为这是在脚本中,我会立即调用git commit.这会导致错过单页更改日志.

我的第一个想法是将差异输入less,但这不会导致差异更改日志显示空屏幕(需要q按下退出).这是我正在使用的命令:git diff --color=always | less.

有没有更好的方法来做到这一点?

git bash less-unix

4
推荐指数
1
解决办法
188
查看次数

是否可以将多个流的内容输出到终端中的单独列中?

对于工作,我偶尔需要监视我创建的服务的输出日志。这些日志是短暂的,并且包含很多我不一定需要的信息。到目前为止,我一直在使用以下方法观察它们:

grep <tag> * | less
Run Code Online (Sandbox Code Playgroud)

其中<tag>是 INFO、DEBUG、WARN 或 ERROR。警告数量大约是错误数量的 10 倍,调试数量大约是警告数量的 10 倍,等等。在大量相关的 DEBUG 消息中很难捕捉到一个 ERROR。例如,我想要一种方法,使所有“警告”消息都出现在终端的左侧,而所有“错误”消息都出现在右侧。

我曾尝试使用 tmux 和 screen,但它似乎不适用于我的开发机器。

bash awk grep less-unix

3
推荐指数
1
解决办法
250
查看次数

'少'linux命令的替代程序/使'少'安全

我想为Linux编写一个像'less'命令这样的交互式程序.原因我在我的设置中不能少用,因为你可以在较少提示的'!cmd'中执行shell命令,这可能是任何生产盒的主要安全风险.

我的首选语言是C,但是,如果有人可以建议任何其他类似的程序也会很棒,因为我手上有时间.

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

c linux bash less-unix

3
推荐指数
1
解决办法
1098
查看次数

Git for Windows Bash shell 'less' 命令显示垃圾,同时显示来自 Git 日志调用的格式化文本

我已经为 Windows 安装了 Git,并且总体上对它提供的 Bash shell 中的功能集感到满意。我在使用别名时遇到了问题,该别名在我尝试过的其他任何地方都可以正常工作。

别名:

alias gl='git log --graph --format='\''%Cred%h%Creset %s    %C(yellow)%an | %C(cyan)%ad%Creset %C(green bold)%d%Creset'\''' | less
Run Code Online (Sandbox Code Playgroud)

在 MacOS bash 终端 Cygwin 中,当然在 Linux shell 中,别名会产生很好的结果。

在 Cygwin 下执行的别名

在 GFW 的 Bash shell 中,输出非常混乱:

Git For Windows Bash 下的别名

如果我直接运行命令,没有别名,它可以正常工作。所以我知道并不是 GFW 的 Bash shell 不知道如何解析我写的命令。

我的问题:如何让这个别名在 Git For Windows 下正常工作?

我愿意使用别名的替代方法。如果 linux 函数或真正的 Git 别名会更好地工作,我对这些替代方案感到满意。不过,弄清楚为什么会发生这种情况会很好。

更新/发现 问题似乎根本不在于解释别名。如果我将管道移至“少”,则输出显示正确。因此,看起来 Git Bash Shell 中实现的“less”命令对转义序列的解释(从字面上看,我猜)与其他实现不同。因此,再多的函数调用都无法解决核心问题。

git alias git-bash mingw-w64 less-unix

3
推荐指数
1
解决办法
1414
查看次数

从特定行号拖尾日志文件

我知道如何使用特定行数来拖尾文本文件,

tail -n50 /this/is/my.log
Run Code Online (Sandbox Code Playgroud)

但是,如何使该行计数成为变量?

假设我有一个大型日志文件,它由某个程序每天附加到,日志文件中的所有行都以这种格式的日期时间开头:

Day Mon YY HH:MM:SS
Run Code Online (Sandbox Code Playgroud)

每天我都想输出日志文件的尾部,但只输出前几天的记录。假设这个输出在午夜之后运行,我不担心尾部会溢出到第二天。

我只是希望能够根据昨天日期的第一次出现来计算出要拖尾的行数...

那可能吗?

bash tail less-unix

3
推荐指数
1
解决办法
1万
查看次数

使用grep或其他命令返回多行模式的行号

我正在使用该less命令浏览一个非常大的文本日志文件(15 GB),并尝试搜索多行模式,但是经过一些调查,该less命令只能搜索单行模式。

有没有一种方法可以使用grep或其他命令来返回多行模式的数字行?

日志的格式是这样的,经过数十万次迭代:

Packet A
op_3b       : 001
ctrl_2b     : 01
ini_count   : 5

Packet F
op_3b       : 101
ctrl_2b     : 00
ini_count   : 4

Packet X
op_3b       : 010
ctrl_2b     : 11
ini_count   : 98

Packet CA
op_3b       : 100
ctrl_2b     : 01
ini_count   : 5

Packet LP
op_3b       : 001
ctrl_2b     : 00
ini_count   : 0

Packet ZZ
op_3b       : 111
ctrl_2b     : 01
ini_count   : 545

Packet QEA
op_3b       : …
Run Code Online (Sandbox Code Playgroud)

linux awk grep sed less-unix

3
推荐指数
1
解决办法
189
查看次数

退出 less 后,如何使 less 输出持久保留在终端上?

在我的旧系统(Linux Mint 18.3)上,每次我使用 less 命令并退出(q)时,最后查看的 less 页面仍保留在终端(bash)视图中

在我的新系统(最低 19.3)上,当我退出“less”时,一切都会消失,就好像 less 从未打开过(例如,类似于“nano”命令所发生的情况)

有没有办法让 less 的行为像我的旧系统一样?当使用 git log 等工作时,它非常有用

less-unix

3
推荐指数
1
解决办法
420
查看次数

标签 统计

less-unix ×10

bash ×5

linux ×5

git ×3

grep ×3

awk ×2

sed ×2

alias ×1

c ×1

git-bash ×1

mingw-w64 ×1

tail ×1

tr ×1

xterm ×1