我有一个来自同事的脚本来格式化我的提示。它使用sed抓取我的分支并使用下面的代码格式化(注意我硬编码了分支名称进行测试):
echo "* master" | sed -e '/^[^*]/d' -e 's/* \(.*\)/ \1 /'
为了更多地了解剧本的作用,我正在玩弄它。我注意到它打印了我的分支“master”的名称,但它在分支名称(“master”)之前留下了空格。我想消除空间。我似乎无法做到这一点。
答案 0 :(得分:2)
您可以通过不使用sed来简化问题
echo "* master" | cut -c3-
答案 1 :(得分:2)
也许你正在寻找这个:
kent$ echo "* master" | sed 's/ \+//'
*master
此sed行删除一个或多个空格的第一个出现。
答案 2 :(得分:2)
只需删除\1
之前的空格即可。可能你也想删除它背后的空间。
echo "* master" | sed -e '/^[^*]/d' -e 's/* \(.*\)/\1/'
答案 3 :(得分:0)
与你的硬编码分支相比,原来的sed有点奇怪
在“*”之后需要结束。简单地“删除”行的开头
Your_source | sed -n'/ [^ *] / {s / ^ * // p; q;}'
仅从"* "
开始,删除开始,打印并退出(不超过1行,以"* "
处理)