[SOLVED] Trim the space after Select-String commande PowerShell ( for removing multiple local git branch)

Issue

This Content is from Stack Overflow. Question asked by WolfCode

My Objective is removing multiple local git branch.

PS> git branch

  bug/5646
  chin-dev
* dev
  fea/account-manager
  fea/animation
  fea/charts
  fea/chat
  fea/dataTable
  fea/enquete
  fea/page-title
  fea/questionnaire
  fea/style
  hotfix
  master
  merge
  mod/dataTable
  question
  saif-dev
  support

My objective is removing all branch starting with ‘fea’, with this commande
PS> git branch -d $(git branch | Select-String -Pattern 'fea/') <– (Yes, I kown Select-String is matching string, but anyway ignore in that case)

Result with the commande

error: branch '  fea/account-manager' not found.
...
error: branch '  fea/questionnaire' not found.
error: branch '  fea/style' not found.

As you can see it return the matched line also with space.
So these anyway removing space with select-string?

Also i tried convert the result toString for using Trim()

PS > $(git branch | Select-String -Pattern 'fea/' ).ToString().Trim()
System.Object[]



Solution

  1. you can list a set of branches using git branch alone (and no external commands) :
git branch --list "fea/*"
  1. git branch now supports the --format=... option, which makes it much more suitable for scripting purposes (e.g: no need to do manual processing of the output to remove a leading * or leading spaces):
git branch --format="%(refname:short)" --list "fea/*"

As far as Powershell line processing goes :

to apply some action on each line (or each object) produced by a command, you should iterate on the output using % { ... } (short for for-each-object { ... }) :

... | % { $_.ToString().Trim() }


This Question was asked in StackOverflow by WolfCode and Answered by LeGEC It is licensed under the terms of CC BY-SA 2.5. - CC BY-SA 3.0. - CC BY-SA 4.0.

people found this article helpful. What about you?