我有一个执行简短状态的别名,用sed解析它然后将文件添加到'假设 - 未更改' git指数。
然而,这个问题似乎是我在OS X bash中逃避单引号的理解中的一个简单问题。
irm = !sh -c 'git ignore $(git st --short -u | sed '\''/^ D/s/^ D//g'\'')'
这是gitconfig中的完整行。我可以在shell中发出命令(带sh和引号),但是当我尝试通过git irm
运行它时,我得到了错误的git配置
根据以下建议,我对此进行了一些不同的配置。但是,它仍然无法在gitconfig中工作。所以我将其添加到我的~/.profile
alias irm="git ignore $(git st --short | grep '^ D' | sed 's/^ D //')"
答案 0 :(得分:1)
你应该可以使用双引号,但你必须逃避它们:
irm = !sh -c 'git ignore $(git st --short -u | sed \"s/^ D//\")'
您无需选择该行,因为操作与选择相同。如果您只想输出匹配并排除其他任何内容的行,则可能需要在评论中使用-n
和p
和sed
作为克里斯建议。
此外,由于模式已锚定,因此您不需要全局选项。