LINUX.ORG.RU

Regexp прошу помощи

 


0

1

Добрый день. Имеется файл с содержимым вида (355038, '790=40317=355038=1090839=250', '0x89D5D7E9F742AC8A3B59E3FCAE3A66042FA7352AE34367D0A20002F7200B939779B2A53BC220AA59220BBDD0D96CE79482CC02AF48F09ACDD43D15D9CC8CAC4F2610C60B2BEC442D09DBB9F2B6E996D60CB177D5141F2E3D9076B5F22E51293B28FD98B215217A706BCA36CCC65E084F80AE3D009AD5FBB34251358C8E288087B6E405FCEFC58AB015815763F171D7E7C62EF1DA5E5A2AC4254FC3C1BA031E1DCF92D9B4EDB82C1E7E9DF5D56A38EF2840ECF61B64320EC219B3514B1DD22B1AD6788DCEACA49E2EDC920390FBEFA47A2BA9FB9380EE3CEB83C9E4AF43DD700592013B67C0B23D95347DC3CF720AC62201F3CEB832E7049C2552A0FE8CAB0C8702152ADC', 40317)

где в строках '790=40317=355038=1090839=250' нужно урезать трехзначные числа до двухзначных именно после = и до', то есть '790=40317=355038=1090839=250' -> '790=40317=355038=1090839=25', но при этом не трогать строки вида (355040, '790=40317=355040=3324861=51' то есть где между = и ' две или одна цифра. Каким регулярным выражением можно выполнить такую замену?

sed -r "s/=([0-9]{2})[0-9]*'/=\1'/g"

Должно работать

HerrWeigel ★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.