BASH:从每个 csv 到新 csv 的循环剪切列

BASH: Loop cut columns from each csv to new csv

我有许多 .csv 文件都具有相同的 22 列结构。我只需要第 5、14 和 15 列,所以使用:

$ cut -d, -f5,14,1 original.csv > new_original.csv

但是我很快就会每天收到大量 csv,需要使用循环函数对每个 csv 文件执行此操作,并在文件名中添加前缀 "new_" 例如。或者我不介意 -i 就地编辑。

谢谢

您可以在包含 csv 文件的目录中运行以下内容。

for file in *.csv
do
  cut -d, -f5,14,1 "$file" > "new_$file.csv"
done

这将遍历它们中的每一个,执行过滤并输出到前缀为 new_ 的相同名称。