Using CSOM it's possible to complete the operation.
Write a console application to get all subsites of a site collection and get the list from each site. Then get the field collection and get the particular field by name and if it's the required one: update it.
Kindly find the code sample below
class Program
{
static string Path = "http://Path:8082";
static void Main(string[] args)
{
ChangeListColumns(Path);
Console.Read();
}
public static void ChangeListColumns(string path)
{
try
{
ClientContext clientContext = new ClientContext(path);
Web oWebsite = clientContext.Web;
clientContext.Load(oWebsite, website => website.Webs, website => website.Title);
clientContext.ExecuteQuery();
foreach (Web orWebsite in oWebsite.Webs)
{
Web oWebsite1 = clientContext.Web;
List olist = orWebsite.Lists.GetByTitle("ListTitle");
FieldCollection oFieldCollection = olist.Fields;
foreach (Field oField in oFieldCollection)
{
if (oField.Title.Equals("oldName"))
{
oField.Title = "NewName ";
oField.Update();
olist.Update();
ClientContext clientContext1 = new ClientContext(orWebsite.ServerRelativeUrl);
clientContext1.Load(olist);
clientContext1.ExecuteQuery();
}
}
}
}
catch (Exception ex)
{
}
}
}