У меня есть много огромных файлов, скажем, 3 разных папки, из которых я бы хотел скопировать строки из X в Y файлов с тем же именем и добавить их в новый файл с тем же именем. Я пытался делатьлинии кота от X до Y нескольких файлов в один файл
ls seed1/* | while read FILE; do
head -n $Y | tail -n $X seed1/$FILE seed2/$FILE seed3/$FILE > combined/$FILE
done
Это делает работу для первого значения $ FILE, но не возвращает приглашение, и, следовательно, я не могу выполнить эту петлю.
Например у меня есть следующие файлы в трех различных папках, seed1, seed2 и seed3:
seed1/foo.dat
seed1/bar.dat
seed1/qax.dat
seed2/foo.dat
seed2/bar.dat
seed2/qax.dat
seed3/foo.dat
seed3/bar.dat
seed3/qax.dat
Я хотел бы объединить строки с 10 по 20 из всех файлов в комбинированному папке:
combined/foo.dat
combined/bar.dat
combined/qax.dat
Каждый из файлов в объединении имеет 30 строк, по 10 каждый из семян1, seed2 и seed3.
Запрос исчезает, потому что вы не указали аргумент файла «head». Использование ls для генерации FILE, а затем перезапись FILE выглядит очень подозрительно. – peak