假设我有以下文件:
$ cat test
test line 1
test line 2
line without the search word
another line without it
test line 3 with two test words
test line 4
Run Code Online (Sandbox Code Playgroud)
默认情况下,grep返回包含搜索词的每一行:
$ grep test test
test line 1
test line 2
test line 3 with two test words
test line 4
Run Code Online (Sandbox Code Playgroud)
传递--color参数 togrep将使其突出显示与搜索表达式匹配的行部分,但它仍然只返回包含该表达式的行。有没有办法grep输出源文件中的每一行,但突出显示匹配项?
我目前实现这一点的可怕黑客(至少在没有 10000+ 连续行且没有匹配项的文件上)是:
$ grep -B 9999 -A 9999 test test
Run Code Online (Sandbox Code Playgroud)

如果grep不能做到这一点,是否有另一个提供相同功能的命令行工具?我摆弄过ack,但它似乎也没有选择。
我在网上找到了这张图,但不知道它是怎么制作的,

任何人都可以提供样本吗?我也想有一个颜色表。
在带有 Ubuntu 14.04 和 的系统中bash,我的PS1变量以以下内容结尾:
\u@\h:\w\$
Run Code Online (Sandbox Code Playgroud)
以便提示显示为
user@machinename:/home/mydirectory$
Run Code Online (Sandbox Code Playgroud)
然而,有时,当前目录有一个长名称,或者它在长名称的目录中,所以提示看起来像
user@machinename:/home/mydirectory1/second_directory_with_a_too_long_name/my_actual_directory_with_another_long_name$
Run Code Online (Sandbox Code Playgroud)
这将填充终端中的行,光标将转到另一行,这很烦人。
我想获得类似的东西
user@machinename:/home/mydirectory1/...another_long_name$
Run Code Online (Sandbox Code Playgroud)
有没有办法定义PS1变量来“包装”和“压缩”目录名称,永远不会超过一定数量的字符,从而获得更短的提示?
通常我的终端提示是
username place$
Run Code Online (Sandbox Code Playgroud)
现在它只显示
bash-4.2$
Run Code Online (Sandbox Code Playgroud)
并且所有颜色设置都丢失了(在终端配置文件上我有相同的配色方案,但它只是不显示颜色)
我不知道会发生什么(我不知道如何搜索)。
它从无到有,我正在使用 eclipse 和 maven,打开一个新终端,新终端没有颜色。
注意:我没有 ~/.bashrc 文件,但我有 ~/.bash_profile。
我已将最后一个命令的返回值添加到PS1我的.bashrc.
现在我只想在值不为零时才显示它。
Android 的外壳有它:
${| local e=$? (( e )) && REPLY+="$e|" return $e }
Run Code Online (Sandbox Code Playgroud)
问题:如何将其转换为 bash?
这个问题类似于 Can I configure my shell to print STDERR and STDOUT in different color?
但我正在寻找一种解决方案,可以让我将STDOUT 和 STDERR 都更改为一种颜色。我不想为 STDOUT 和 STDERR 设置不同的颜色,因为这有问题并且可能会产生问题,在上面链接的答案中提到。
我很抱歉,因为我对 Unix 和 Linux 不太了解。我要寻找一个解决方案,可以让我加几行我.bashrc还是.bash_profile和永久改变输出和错误的颜色。
我突然想到,当我在终端中做事时,我的 PS1 会为每个命令重复几次。我的 PS1 包括 CWD 和 git 分支,所以它可以得到相当长的时间。
有没有一种方法可以将我的 PS1 设置为 $ 美元符号,但将其他信息移到“状态栏”中,或者只是将其保留在终端底部?很像 tmux 的状态栏,但这些位通常构成我的提示的一部分。
理想情况下,我想要一个只涉及更改我的 .bashrc 的解决方案,但任何解决方案都可以。我做了一些谷歌搜索,发现了一个 tmux 的 git branch 东西(但没有 CWD/其他位)和一个非常古怪的“状态栏与时间”并没有真正起作用。
我见过其他人将所有这些信息添加到他们的 PS1 提示中。
我喜欢对元素进行着色并在最后进行回车的方法。