Опубликовано 27/03/2014
Задача: имеется текстовый или 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.
Добавить комментарий