regex och sed - byta ut tecken

Tråden skapades och har fått 3 svar. Det senaste inlägget skrevs .
1
  • Medlem
  • International user
  • 2005-11-22 21:01

Jag behöver ett regex till 'sed' som byter ut alla tecken i en rad om raden innehåller en grupp om fem siffror (0-9). Gruppen om 5 siffror i raden ska dock inte bytas ut.

Lincoln2:~/test admin$ cat filen
abcde10001fgh
abcde20002fgh
abcde300003fgh
Lincoln2:~/test admin$  sed  's/[^0-9]/_/g' filen
_____10001___
_____20002___
_____300003___
Lincoln2:~/test admin$

'sed' byter ut alla tecken som inte är en siffra (0-9) mot '_'. Men jag vill bara att 'sed' gör bytet om gruppen innehåller 5 siffror. Inte 6 siffror som sista raden i filen.

/[^0-9]{5}/

??

  • Medlem
  • Tyresö
  • 2005-11-23 13:00

$ sed -e '/[^0-9][0-9]\{5\}[^0-9]/s/[a-z]/_/g' filen
_____10001___
_____20002___
abcde300003fgh

  • Medlem
  • International user
  • 2005-11-23 13:23
Ursprungligen av DozePih:

$ sed -e '/[^0-9][0-9]\{5\}[^0-9]/s/[a-z]/_/g' filen
_____10001___
_____20002___
abcde300003fgh

Just det, tack för det.

1
Bevaka tråden