regex - 提示有大量已修改和未知的 Mercurial 文件

标签 regex mercurial sed prompt

我正在使用hg prompt扩展以在使用 hg 时有一个很好的提示。

现在我的提示如下所示:

~/my/current/path [hg default !]

提示中的 '!' 部分是通过 hg 提示{status} 关键字获得的,显示已修改的文件。它显示未知文件的 '?'

但我想要类似于 posh-hg 的东西,它还显示已修改或未知文件的数量。

我知道我可以通过 hg Summary 获取此信息,但我的 sed fu 无法正确获取正则表达式以获取总数。

hg Summary 命令的输出示例:

parent: 0:16ed527e220f tip
 parent commit message
branch: default
commit: 5 modified, 2 unknown
update: (current) 

做一个 Mercurial 总结| grep 'commit' 我得到了正确的行:

$ hg summary | grep 'commit'
commit: 5 modified, 2 unknown

鉴于上面的输出,我如何获取已修改和未知文件的数量,以便我可以使提示符如下所示:

[hg 默认 5! 2?]

最佳答案

这有效:

hg sum | sed -ne '/^commit:/{s/^commit: //;s/ modified/\!/;s/ unknown/?/;s/,//g;p}'

...尽管可能有更优雅的方法来做到这一点。

您可能可以自己找出添加删除等部分。

关于regex - 提示有大量已修改和未知的 Mercurial 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7440221/

相关文章:

javascript - 如何将文本拆分为 URL 数组和空格分隔的短语?

mercurial - 在 TortoiseHg Workbench 中按多个条件过滤

mercurial - 是否可以将 Mercurial subrepo 路径从绝对更改为相对

linux - 将 Windows 路径转换为 ​​Linux 路径的 Bash 脚本

unix - 删除 Unix 文件中的 ^@ 字符

javascript - 通过正则表达式在javascript中搜索反斜杠+字符串

javascript - 用于检查 .css 文件的正则表达式

正则表达式仅匹配 10 或 12 位数字

ssl - 带有指纹的 www.bitbucket.org 证书在推送更改时未验证问题

Bash + sed/awk/cut 删除第 n 个字符