2013-08-04 1 views
0

Предположим, что у меня есть два файла, каждый из которых имеет заголовок в первой строке и записывает оставшиеся строки. И я хочу объединить два файла в один, но не включать заголовок дважды.Как добавить один файл в другой, с первым редактируемым файлом, поэтому нельзя использовать обычную команду cat

Я попробовал следующие команды при поиске по запросу (поэтому я не могу справиться оптимальным образом).

cat awk 'NR!=1 {printf "%s\n", $1}' file2.csv >| file.csv 

Однако, у меня была следующая ошибка.

cat: awk: No such file or directory 
cat: NR!=1 {printf "%s\n",$1}: No such file or directory 

Похоже cat признан awk в виде файлов, а не команд. Я хочу, чтобы результат awk был содержимым файлов, поэтому я также попытался передать его аргументу cat.

awk 'NR!=1 {printf "%s\n", $1}' file2.csv > cat file.csv 

Однако, таким образом, я получил файл cat, в котором я получил результат awk ...

Так как я могу решить эту проблему?

Спасибо.

ответ

1

Вам нужна группировка:

{ 
    cat file1 
    sed '1d' file2 
} > file.csv 

Как одна линия

{ cat file1; sed '1d' file2; } > file.csv 

требуется точка с запятой перед окончанием скобкой.

0

печать первая строка из первого файла, затем напечатать строку # 2 в конец любого файла

awk 'NR==1||FNR>1' file1 file2 (file3 file4 ..) > outfile 
Смежные вопросы