我在 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 完成?
我有一个用逗号分隔的字符串,就像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)
?
我正在尝试使用以下命令列出所有隐藏的目录
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 会这样?