Grep

Mac OS xargs 在行尾添加 ‘?[m’

  • August 23, 2019

我正在嘗試刪除一些本地 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 上它有什麼不同嗎?

您可能已經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,請檢查您的別名。

引用自:https://unix.stackexchange.com/questions/537032