Это может работать для вас (GNU sed):
sed -E '/^[^,]*,[^,]{10,11},/!s/[^,]*/12223334444/2' file
Если второе поле, разделенное ,
, не имеет 10 или 11 символов, замените поле на 12223334444
.
Как уже было сказано, django -pyodbc - хороший способ. PyODBC, вероятно, самая зрелая библиотека SQL Server для Python.
Единственное, с чем могут возникнуть проблемы, это то, что pyodbc не очень хорошо поддерживает хранимые процедуры (вы можете вызывать их, но у вас нет возможности получить от них результаты). Вы можете вызывать их с помощью pymssql, но я бы по возможности избегал этого, поскольку он не поддерживает стандартный интерфейс DB-API и может быть подвержен изменениям. Если вам нужно это сделать, лучше всего использовать напрямую adodbapi (он включен в пакет python win32, который вы, вероятно, все равно установите).
Мы используем django-mssql в производстве в нашей компании. У нас тоже была существующая система, использующая mssql. Лично для меня это было лучшее дизайнерское решение, которое я когда-либо принимал, потому что моя продуктивность резко выросла, когда я могу использовать django.
Я отправил патч, но когда начал использовать django-mssql и провел неделю или две тестирования. С тех пор (октябрь 2008 г.) мы запускаем нашу систему на django, и она работает стабильно. Я тоже пробовал pyodbc, но мне это не очень понравилось.
У нас работает система восстановления, в которой все транзакции проходят через эту систему 40 активных пользователей. Если у вас есть еще вопросы, дайте мне знать.
Я еще не использовал его в продакшене, но мой первоначальный опыт работы с django-mssql был довольно надежным. Все, что вам нужно, это расширения Python Win32 и получить модуль sqlserver_ado на ваш путь Python. Оттуда вы просто используете sql_server.pyodbc
как свой DATABASE_ENGINE
. Пока я не заметил чего-либо пропавшего, но и еще не нашел в этом полностью ничего.