Если я вас правильно понимаю, вам просто нужно добавить код города к любому 7-значному номеру телефона в любом месте этого файла, верно? Я понятия не имею, на какой системе вы работаете, но если у вас есть приличные инструменты, вот несколько вариантов. И, конечно же, подходы, которые они используют, по-видимому, могут быть реализованы в PHP; это просто не один из моих языков.
Итак, как насчет sed-liner? Просто найдите 7-значный номер телефона, ограниченный либо началом строки, либо запятой слева, а запятой или концом строки справа.
sed -r 's/(^|,)([0-9]{3}-[0-9]{4})(,|$)/\1208-\2\3/g' contacts.csv
Или, если вы хотите применить его только к определенным полям, perl (или awk) будет проще. Предположим, это второе поле:
perl -F, -ane '$"=","; $F[1]=~s/^[0-9]{3}-[0-9]{4}$/208-$&/; print "@F";' contacts.csv
-F,
указывает на разделитель полей, $"
- это разделитель выходных полей (да, он присваивается один раз за цикл, ну да ладно), массивы индексируются нулями, поэтому второе поле равно $F[1]
обычная замена, и вы печатаете результаты.