使用 awk 和并行处理一次多个文件

Process multiple files at once using awk and parallel

我有一百多个 .csv 文件,其中包含以“|”分隔的数据。我需要使用 awk 和 parallel 在每个零件文件的第二列添加前缀。

我一次只做一个文件,但要花几个小时。所以想并行。

input1.csv

10|20

10|30

10|40

input2.csv

20|30

20|40

第 1 行|10

预期输出

input1.csv

10|P20

10|P30

10|P40

input2.csv

20|P30

20|P40

line1|P10

我正在使用它,当我一次处理一个文件时工作,但我需要更快的东西来使用并行处理多个文件

awk 'BEGIN{FS=OFS="|"} { = "P" } 1' input1.csv > in.tmp && mv in.tmp input1.csv

awk 'BEGIN{FS=OFS="|"} { = "P" } 1' input2.csv > in.tmp && mv in.tmp input2.csv

end 最后将所有的input*.csv文件合并到input

这对我有用

parallel "awk -F'|' '{print $1\"|\"\"PO\"$2}' {} > {}.tmp; mv {}.tmp {}" ::: input*.csv