Хотя я обнаружил много случаев, когда можно использовать команду split
для разделения файла на части, мне не повезло найти способ использовать split
для массового разделения группы файлов.
Например, у меня есть папка, и внутри этой папки находятся сотни файлов, которые начинаются с символа «а» и заканчиваются на «.txt». Как я могу получить split
с одной строкой кода, чтобы разбить все эти файлы, скажем, на части, содержащие не более 20 строк текста? Что-то вроде:
split -l 20 a*.txt
не работает, потому что split
дает
extra operand "filename" error.
Спасибо
Это сделает задание:
find . -maxdepth 1 -type f -name 'a*.txt' -exec split --additional-suffix=.txt -l 20 {} {} \;
Выполните вышеупомянутую команду из каталога, который содержит файлы, которые Вы хотите разделить. Это будет:
a
.Я главным образом использую разделение в сценарии, где я хочу позже splitted, чтобы части объединились вместе снова. В ситуации как Вы описывают, я не могу вообразить, как Вы могли позже их слияние в исходные файлы. Так, если в Вашем слиянии ситуации назад снова не релевантно, я думаю, что эта простая команда могла быть sufficent:
cat a*.txt | split -l 20