2015-10-05 2 views
2

Довольно часто я хочу взять первые 1000 строк одного файла, скажем, первые 200 из другого и передать конкатенацию файлу.Труба головок двух файлов в файл

Для этого я могу сделать

head -1000 fileA > fileA-1000 
head -200 fileB > fileB-200 

cat fileB-200 fileA-1000 > file C 

Можно ли это сделать все как одна команда?

ответ

6
{ head -200 fileB; head -1000 fileA; } > fileC 

Можно объединить команды вместе с {...}. Когда команды сгруппированы, перенаправление ввода-вывода может быть применено к группе в целом.

+0

спасибо. Что делает вторая полуколока? – eleanora

+0

Оболочка рассматривает '}' как маркер конца группы _only_, если это первое слово команды. Если бы вторая полуколока не была там, напротив, оболочка подумала бы, что '}' был последним аргументом команды 'head -200 fileB'. – John1024

+0

Спасибо. Еще кое-что. У вас есть файлы, перечисленные в противоположном порядке для меня (A тогда B не B тогда A). Это преднамеренно? – eleanora

Смежные вопросы