必须将一些 csv 转换为 req 格式并将其存储在具有相同名称的其他位置

必须将一些 csv 转换为 req 格式并将其存储在具有相同名称的其他位置

我有一些输入 CSV 文件 INPUT_FILE:

A_B_C_NFM001_20150729.csv
A_B_C_NFM002_20150729.csv
A_B_C_NFM003_20150730.csv

在对输入文件执行以下转换后,我想要一个与输入同名的输出文件。我试过这个:

#!/bin/bash

TARGET=/path/transformed_dir
var=echo /home/dbadmin/Indus_Project/PING_STATUS/A_B_C_*.csv | grep -oP '(?<=_)\d+(?=\.)'
arr=($var)
for i in "${arr[@]}"
do
  awk -F, 'NR==1 { for (i=2; i<=NF; i++) sn[i]=$i } NR>1 { for (i=2; i<=NF; i++) print $1 "," sn[i] "," $i }' A_B_C__$i.csv > $TARGET/A_B_C__$i.csv
done

但它给出的输出文件为A_B_C_*_.csv

答案1

数组的声明应如下所示:

declare -a arr=$( $(echo /home/dbadmin/Indus_Project/PING_STATUS/A_B_C_*.csv) | grep -oP '(?<=_)\d+(?=\.)' )

在您的原始命令中, 的 声明甚至不应该工作,并且不需要var绕道声明数组arrvia 。var

相关内容