小编dan*_*996的帖子

每次显示新提示时,Bash 提示执行命令

我在 bash 中有以下提示,它显示了当前的 git 分支:

PS1+="$(git_prompt)" #git_prompt is a function in my .bashrc
Run Code Online (Sandbox Code Playgroud)

这在我获取 .bashrc 时有效,但在我更改分支时无效,因此 PS1 var 仅在我获取 .bashrc 时进行评估,但每次显示新提示时都应进行评估。这如何用 bash 4.3 完成?

bash prompt

13
推荐指数
2
解决办法
9497
查看次数

将字符串拆分为数组并使用命令行在新行上打印每个元素

我有一个用逗号分隔的字符串,就像a,b,c,d,e,f我想分成一个以逗号作为分隔符的数组。然后我想在新行上打印每个元素。我遇到的问题是,到目前为止我所知道的所有 cli 工具(sed、awk、grep)只能在行上工作,但是如何将字符串转换为这些工具可以使用的格式。到目前为止我尝试过的是

echo "a,b,c,d,e,f" | awk -F', ' '{print $i"\n"}'
Run Code Online (Sandbox Code Playgroud)

我怎样才能得到这个输出

a
b
c
d
e
f
Run Code Online (Sandbox Code Playgroud)

从这个输入

a,b,c,d,e,f
Run Code Online (Sandbox Code Playgroud)

command-line sed awk split

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

ls | grep 不适用于 ls --color

我正在尝试使用以下命令列出所有隐藏的目录

ls -lhAF1 | grep -E '^d.*[0-9]{2}:[0-9]{2} \.'
Run Code Online (Sandbox Code Playgroud)

这工作得很好

正则表达式的解释:我试图获取所有具有以下格式的行:d,然后是一些文本,然后是时间戳,然后是一个空格,然后是点,然后是更多文本

但是,当我尝试使用此命令为 ls 输出着色时:

ls --color -lhAF1 | grep -E '^d.*[0-9]{2}:[0-9]{2} \.'
Run Code Online (Sandbox Code Playgroud)

它给出零结果,没有的输出--color是:

drwxr-xr-x 1 用户组 4096 Feb 1 08:48 .invisible

为什么 ls / grep 会这样?

ls grep colors regular-expression

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

标签 统计

awk ×1

bash ×1

colors ×1

command-line ×1

grep ×1

ls ×1

prompt ×1

regular-expression ×1

sed ×1

split ×1