Michael Niemand
Michael Niemand

Reputation: 1754

Increasing an number in PowerShell with Regular Expressions

I have some files that contain strings like

#define PROG_HWNR "#37595"
#define C_HWPROG_NR "24499"
#define PROG_HWNR "#39917"
#define C_HWPROG_NR "24901"
#define C_HWPROG_NR "37598"

I put them in a file named regex-test (for testing purposes)

What I want to do is increase each number by one. There are other #defines and numbers that must not be increased, I have a list of all variable names that need to be increased.

I already have a PowerShell command like

Get-Content regex-test | foreach { [regex]::match($_,'"#?(\d+)"$').groups[1].value }

which returns the numbers. They now only need to be replaced with [value] + 1

Can you point me in the right direction? Thanks!

Upvotes: 4

Views: 1766

Answers (1)

Davor Josipovic
Davor Josipovic

Reputation: 5504

Why not just:

$tmp = Get-Content regex-test | foreach { $n = [regex]::match($_,'"#?(\d+)"$').groups[1].value; if ($n) {$_ -replace "$n", ([int32]$n+1)} else {$_}; }

Then save the $tmp.

Upvotes: 8

Related Questions