Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/unix/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Shell 必须将一堆csv转换为req格式,并以相同的名称存储在其他位置_Shell_Unix - Fatal编程技术网

Shell 必须将一堆csv转换为req格式,并以相同的名称存储在其他位置

Shell 必须将一堆csv转换为req格式,并以相同的名称存储在其他位置,shell,unix,Shell,Unix,我有一些输入文件,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

我有一些输入文件,
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 
#/bin/bash
TARGET=/path/transformed\u dir
var=`echo/home/dbadmin/Indus_Project/PING_STATUS/A_B_C_*.csv|grep-oP'(?
#!/bin/bash)
目标=路径/转换的路径
对于路径/PING_STATUS/A_B_C_u*.csv中的srcname
做
basename=${srcname##*/}

awk-F,'NR==1{for(i=2;i1{for(i=2;i=2);我非常感谢你。这真的很有帮助
#!/bin/bash
target=path/transformed_dir
for srcname in path/PING_STATUS/A_B_C_*.csv
do
  basename=${srcname##*/}
  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 }' "$srcname" >"$target/$basename"
done