Intereting Posts
используя awk для подмножества файла fastq на основе длины последовательности Ядро распознает USB-устройство, но затем я не могу найти его в / sys или / dev Значение переменной не распознается после использования gnu parallel? Является ли файловая система журналов хорошей идеей с зашифрованным диском dm-crypt? Vintage терминал для Ubuntu Как проверить быстрый вывод rsync Метаданные LVM восстанавливаются без доступа к / et / lvm (sic) Цель $ в символической ссылке? Правило Udev для автоматического подключения мультимедийных устройств перестало работать после обновления systemd до версии 239 Могу ли я запустить xvfb в консольной системе debian? Ошибка загрузки разделяемой библиотеки libSDL-1.2 Список всех файлов, заканчивающихся несколькими расширениями файлов? Как установить mod_pagespeed с помощью apt-get? zgrep против egrep против grep Загрузка с использованием initramfs вместо uramdisk

разделить файл на куски, включая больше строк в первой части

Я пытаюсь отделить большой файл с 4100 строк. Разделение 6 строк чисел в виде файла и других строк должно выполняться в виде 4 строк числа в виде файла. Пожалуйста, рассмотрите ниже.

Как написать скрипт bash?

Вы можете попробовать с awk :

 awk '{if (NR>6){if ((NR-6)%4==1){++c}} else {c=1}};{print >"file"c".las"}' infile 

На настройке gnu и с относительно недавним разделом версии, который позволяет вам добавить суффикс, вы также можете сделать что-то вроде:

 { printf %s\\n\\n; cat infile; } | split -d -l 4 --additional-suffix='.las' - file ( set ./*.las sed '1d s/\\/&&/g 2c\ 1i\\ 3s/$/\\/' "$1" | sed -f - -i "$2" rm -f "$1" ) 

то есть напечатайте две пустые строки, а затем файл, разделив объединенный вывод на куски из четырех строк, вставив первые две строки из исходного ввода через sed (после того, как сбежали обратные косые черты – если есть) во вторую часть и, наконец, удалили первый кусок. Хотя имейте в виду, что это будет ноль-pad имена блоков, так что вы в конечном итоге с file0001.las т. Д.

Следующая команда будет разделяться, как описано, предполагая, что файл должен быть разбит каждые четыре строки. Выходные файлы будут называться, например, output00 , output01 и т. Д. Затем вы можете переименовать все output* файлы, чтобы .las суффикс до конца и, при желании, удалить .las нули.

 split -l4 -d ./input_file output 
 csplit -s -k -f file. inoutfile '/^/+6' '/^/+4' '{*}'