Если file2.csv
содержит только одну строку
sed -i "1 s/.*/$(< file2.csv)/" file1.csv
Если file2.csv
содержит несколько строк
sed -i "1 s/.*/$(sed '1q' file2.csv)/" file1.csv
или
sed -i "1 s/.*/$(head -1 file2.csv)/" file1.csv
Примечание:
Если строка из file2.csv
содержит символ разделителя /
, возникнет ошибка типа неизвестная опция `s'
. В таких случаях используйте другой разделитель, например |
Репликация в реальном времени между машинами возможна, но это трудно сделать с хорошей производительностью. Каждая участвующая машина должна синхронизироваться с другими машинами для доступа к файлу, чтобы избежать конфликта (две машины одновременно изменяют один и тот же файл несовместимыми способами).
Есть несколько файловых систем, которые делают это. ChironFS - одна из них (с открытым исходным кодом); насколько я знаю, она достаточно зрелая, но не поддерживается. FlexRAID также имеет такую файловую систему; она поддерживается, но не бесплатна (хотя и не очень дорога).
Действительно ли вам нужна двунаправленная синхронизация в реальном времени? Более простая система с политиками, позволяющими избегать конфликтов, или с ручным разрешением конфликтов, как, например, в системах контроля версий, скорее всего, будет иметь лучшую производительность и стабильность.
Не зная, почему вы хотите отразить каталог в реальном времени, я не совсем уверен, что посоветовать.
Это для резервного копирования или восстановления? Если да, то, возможно, настроить зеркало на устройствах?
Нужно ли иметь каталог в другом месте? Может, попробовать использовать петлевое крепление? Или использовать автомонтирование? Можно даже открыть общий доступ к одному каталогу через NFS и смонтировать его в другое место?