sed
вероятно, самый простой подход:
sed '/ny/s/xy/ab/g' file
Он содержит две подкоманды -::/ny/
выполняет поиск шаблона, а s/xy/ab/g
выполняет фактическую замену. Обратите внимание, что он заменит все вхождения xy
; если вы хотите заменить только первый из них в каждой строке, просто удалите final g
.
Можно ли хранить файлы в оперативной памяти? Да, вы можете использовать что-то вроде ramfs
(, как указано в комментарии ), но это не имеет отношения к тому, как и почему система переключается. На самом деле может случиться так, что некоторые из ваших файлов, хранящихся в ОЗУ, в конечном итоге будут заменены на диск.
Linux (и Windows )имеют концепцию виртуальной памяти, когда операционная система загружает и сохраняет страницы в памяти. В фоновом режиме выполняется процесс, который перемещает страницы из ОЗУ на диск подкачки (), если место в ОЗУ начинает заканчиваться по определенным критериям. Это компромисс между скоростью и стабильностью, поскольку, если у вас закончилось место в ОЗУ, система остановится (на самом деле это не так, OOM будет произвольно убивать процессы, пока у вас не будет больше ОЗУ, но это разрушительно ).
Таким образом, у вас есть данные в подкачке только в том случае, если вы начинаете потреблять значительный объем оперативной памяти. Вы не можете решить, что поменять местами, а что оставить в оперативной памяти.