Mac OS xargs 在行尾添加 '?[m'

Mac OS xargs 在行尾添加 '?[m'

我正在尝试删除一些本地 git 分支

git branch -D $(git branch | grep 'RTL-1[1|2|3]' | xargs)

但是我遇到了这种错误

error: branch 'RTL-1114_branch_name1?[m' not found.
error: branch 'RTL-1224_branch_name2?[m' not found.
error: branch 'RTL-1225_another_branch?[m' not found.

由于某种原因,正在添加字符串“?[m”,但如果没有 git 命令,我会得到以空格分隔的分支的随意打印。
我相信它可以在我的 Linux 机器上运行,在 MacOS 上有什么不同吗?

答案1

您可能已经git和/或grep配置为始终使用颜色进行输出;在这种情况下,

git branch -D $(git branch --color=never | grep --color=never 'RTL-1[123]')

应该管用。

您可以使用git自己的模式匹配:

git branch -D $(git branch --color=never -l '*RTL-1[123]*')

为了避免将来出现这种情况,您应该使用auto的设置color:输出到终端时它将输出颜色,否则不会输出颜色。适当配置git

git config --global color.ui auto

对于grep,请检查您的别名。

相关内容