Vim не был разработан для больших файлов. Это имеет определенные функции, которые решительно замедляют пользовательский опыт. Например, это загружает файл в память, которая в основном ограничивает для редактирования файлов, меньших, чем емкость памяти. Кроме того, функции, такие как подсветка синтаксиса, файл подкачки и отмена очень неэффективны с большими файлами и замедляют вещь еще больше. Другая проблема - это vim
ожидает не слишком длинные строки. Если файл содержит немного символов новой строки vim
становится неприменимым.
Это сказавшее, существует плагины как энергия-largefile, которые изменяют конкретные настройки, чтобы быть более эффективными с большими файлами, но в конце vim
никогда не будет мгновенным, когда Вы бросите Несколько ГиБ в него.
Нижняя строка, не использовать vim
на больших файлах. Если Вы хотите просмотреть (по контрасту для редактирования) большие файлы, использовать less
. Если Вы хотите искать шаблон, ues наклонная черта для запуска поиска шаблон:
/ # forward search
? # backward search
Если Вы хотите отфильтровать выходное использование амперсанд:
&
Затем запустите непрерывный вывод с помощью shift-f. Можно выйти из непрерывного выходного дисплея с ctrl-c и совершенствовать или отменить шаблон фильтра или запустить поиск.
Для редактирования больших файлов используют инструменты как sed
, они эффективны и разработаны для этой самой цели.
Поставьте do
после расширения параметров, а не раньше. И пропустите $sign внутри расширения и используйте двойные кавычки вокруг расширений, кроме как при присваивании переменной. Например,
while read file
do
temp=${file%\"}
temp=${temp#\"}
cp "foldername/$temp" "foldername/subfoldername"
done < myfile.csv
У вас 2 ошибки:
do
должен быть на 2-й строке i
не было нужноПопробуйте так:
#!/bin/bash
for i in $(cat myfile.csv)
do
temp="${i%\"}"
temp="${temp#\"}"
cp foldername/$temp foldername/subfoldername
done
но, это не получится, если в именах файлов будут пробелы. Скрипт ниже также будет работать с пробелами:
#!/bin/bash
while read i;
do
temp="${i%\"}"
temp="${temp#\"}"
cp "foldername/$temp" "foldername/subfoldername"
done < myfile.csv