我在同一目录中有两个具有相同列数的 .csv 文件,我想将它们组合成一个文件,但只保留第一个文件中的一个标题。文件名总是不同的,只有前缀保持不变:
orderline_123456.csv
Order_number,Quantity,Price
100,10,25.3
101,15,30.2
Run Code Online (Sandbox Code Playgroud)
orderline_896524.csv
Order_number,Quantity,Price
102,20,12.33
103,3,3.4
Run Code Online (Sandbox Code Playgroud)
输出文件应该是这样的:
file_load.csv
Order_number,Quantity,Price
100,10,25.3
101,15,30.2
102,20,12.33
103,3,3.4
Run Code Online (Sandbox Code Playgroud)
这已经在 shell 脚本文件中了,因为现在我只需要获取一个文件,但现在我必须合并两个文件:
awk '(NR-1)%2{$1=$1}1' RS=\" ORS=\" orderline_*.csv >> file_to_load.csv
Run Code Online (Sandbox Code Playgroud)
我尝试将其更改为
awk 'FNR == 1 && NR != 1 {next} (NR-1)%2{$1=$1}1' RS=\" ORS=\" orderline_*.csv >> file_to_load.csv
Run Code Online (Sandbox Code Playgroud)
但我在输出中得到了两次标题。
请你帮助我好吗?该命令到底应该是什么样子?我需要保留它之前的定义方式。
谢谢你!
您正在寻找
awk 'NR == 1 || FNR > 1' file ...
Run Code Online (Sandbox Code Playgroud)
NR是看到的所有记录的计数,
FNR是当前文件的记录数。