Try using version-control software, such as Git. You can then edit the file however you want, such as with your favorite text editor, and you'll be able to look at previous versions and the differences between versions.
I've been using EmEditor for years. Can open practically any size file (up to 248GB realistically) and can split CSV and other delimited text into columns. With tons of other features.
There's a free version, but if you need it for a company, then I highly recommend getting the lifetime license.
I was looking for something similar, and since I could not find it, I wrote a small python script following the principles outlined by rd_nielsen.
You can call it like this:
python3 pandoc-merge.py --csv addresses.csv -o merged_letter.pdf letter_template.md
In your template, you can ...
Using PostgreSQL and DBeaver is another option.
PostgreSQL is a sophisticated, open source database system. It allows for importing CSV files through the COPY command and through graphical UIs such as DBeaver.
DBeaver is a free and multi-platform database management tool.
Create the database table for the CSV files. Make sure the table column ...
Recently I came across "Dolt - It's git for data". Maybe it's worth a look.
It's not CSV based (but similar to mySQL), and not WYSIWYG.
Dolt does not track schema changes, however (= columns added, removed, renamed...)
But it does track the data changes you describe, and enables you to do diffs, snapshots, rollbacks, time-travel.
if you need to process these in your intranet- get a server or PC with lots of memory. Command line tools such as grep, sort and uniq -c are a good first start to do simple analyses, assuming that the data is reasonably clean.
Alternatively process datafiles in the cloud. New customers get a free tier there. Upload files to, say, Google BigQuery and process ...
Google/GCP BigQuery allows you to query CSV files that have not been imported (https://cloud.google.com/bigquery/external-data-sources). There would be a small cost for storage and costs per query, however.
If you end up having to import, then the SQLite answer may be better, of course!
You can use RBQL from the command line (RBQL in pip) And from Rainbow CSV text editor extensions which provide nice GUI and are available for VSCode, Atom, Sublime Text, and Vim. And you can also try RBQL online without installing anything - rbql.org
It would have been much simpler if you had used esProc SPL. It directly provides the ability of SQL query and calculation for files (CSV, TXT, Excel, etc.). For example:
$select * from scores.txt where class=10 //Filter
$select class,avg(english) as avg_en from scores.txt group by class //Group and aggregate
$select sum(S.quantity*P.Price) as total from ...