Разрезание файла

Сообщение об ошибке

Deprecated function: The each() function is deprecated. This message will be suppressed on further calls в функции menu_set_active_trail() (строка 2405 в файле /var/www/notes7/includes/menu.inc).

Задача: имеется текстовый или csv файл. Записать каждую строку в отдельный файл с произвольным расширением .

В консоли переходим в папку с файлом. Далее набираем.

split -l1 -a4 -d ВАШ_ФАЙЛ

Команда SPLIT как раз и разобьет построчно исходный файл на кучу отдельный файликов.

Опции:

  • -l1 - разбивать по 1 строке
  • -a4 - длина имени в полученных файлах будет равна 4м
  • -d - имя будете состоять из цифр, а не букв

далее....

rename 's/^([^\.]*)$/${1}.csv/' x*
  • команда RENAME переименовывает файл
  • между первыми двумя слешами, Вы пишите то, что хотите заменить. Между вторым и третим то, что должно быть после замены.

в команде выше:

  • ^ в начале - означает начало строки
  • все что внутри ( ) - сохранится и будет доступно через ${n} , где n - номер скобок по порядку
  • [\.] - среди допустимых значений только точка
  • ^ в начале скобок [ ] означает НЕ, т.е. [^\.] - превращается во все, кроме точки
  • * - означает повторить 0 или более раз. Правильнее было бы использовать + - т.е. 1 и более. Но уж как написал...
  • $ - если в конце. то означает конец строки (до конца)
  • между 2ым и 3им слешами пишем: замени на то, что попало в первые скобки поиска, плюс добавь .csv
  • x* - применить ко всем файлам, начинающимся с x, а далее набор любых символов. По крайней мере, у меня все полученные файлы без расширения начинались на x.

Добавить комментарий

CAPTCHA