0

假设我有两个文件,每个文件的第一行都有标题,其余行有记录。而且我想将两个文件合并为一个,但不要两次包含标题。

我在搜索答案时尝试了以下命令(因此我可能无法以最佳方式应对)。

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

但是,通过这种方式,我得到了 file cat,其中我得到了awk...的结果

那么我该如何解决呢?

谢谢。

4

3 回答 3

1

你需要一些分组:

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

作为一条线

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

大括号前的分号是必需的。

于 2013-08-04T01:21:33.747 回答
0

从第一个文件打印第一行,然后将第 2 行打印到任何文件的末尾

awk 'NR==1||FNR>1' file1 file2 (file3 file4 ..) > outfile
于 2013-08-04T07:30:58.417 回答
0
{cat file1; tail -n +2 file2} > out
于 2013-08-04T01:33:24.063 回答