sed замена строк

Жалоба
Вопрос

Столкнулся с тем что необходимо по тексту поменять числа. В строках идут:
100
101
102
103
итп.

Хочется их преобразить в *00. т.е. например:

100 - в 200
101 - в 201.
Итп. Найти такие строки не проблема, "1dd" но как заменить эту первую цифру я что-то осилить не могу.
sed и регулярки только начал осваивать.
Прошу помощи :)
Дополнение #1 01.12.2011 4:13:05
Да, но если бы всё было так просто :)

Я вырвал проблему из контекста. Вот пример, кусочек конфига коммутатора:

create vlan MNG tag 100
config vlan MNG add tagged 25 advertisement disable
create vlan U01 tag 101
config vlan U01 add tagged 25
config vlan U01 add untagged 1 advertisement disable
create vlan U02 tag 102
config vlan U02 add tagged 25
config vlan U02 add untagged 2 advertisement disable
create vlan U03 tag 103
config vlan U03 add tagged 25
config vlan U03 add untagged 3 advertisement disable

Где мы видим эти числа, которые и надо менять. И в таком случае он меняет везде все единицы на двойки, а надо лишь обработать идентификаторы вланов: 100, 101, 102, итп.

В процессе 1
Linux 4 года назад 3 Ответов 245 Просмотров 0

Ответов ( 3 )

  1. s/tag 1/tag 2/g

    0
    6 лет назад
    Ответить

    sed -i 's/^1/2/g' file

    где шапка '^' -- символ начала строки

    0
    6 лет назад
    Ответить

    Если нужно любую первую цифру идентификатора изменить на двойку то, вот так:
    perl -pe 's| tag d| tag 2|' файл.log

    а если увеличить на единицу, то вот так:
    perl -pe '$v=/ tag (d)/+1 ; s/ tag d/ tag $v/'

Ваш ответ