如何将一个文件附加到另一个文件,第一个文件正在编辑,因此无法使用通常的cat命令

时间:2013-08-04 01:16:35

标签: unix awk command pipe 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

看起来catawk识别为文件,而不是命令。我希望awk的结果是文件的内容,所以我也尝试将它传递给cat的参数。

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

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

那我怎么解决呢?

感谢。

3 个答案:

答案 0 :(得分:1)

您需要进行一些分组:

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

作为一行

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

需要结束括号前的分号。

答案 1 :(得分:0)

{cat file1; tail -n +2 file2} > out

答案 2 :(得分:0)

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

awk 'NR==1||FNR>1' file1 file2 (file3 file4 ..) > outfile