我有多个带有名称的 csv 文件
VAR1_VAR2_VAR3_VAR4.csv
所有文件在内部具有相同的结构,只是值发生了变化。我试图通过每次修复一个或多个 VAR 来从这些文件中检索数据。我试图写一个脚本,但我有两个问题:
1-由于所有文件都具有相同的结构,所以我完全知道所有字段,我想根据行号和列号(即$(R1,C4))检索数据。不可能做到这一点吗?
2- 当我在 VAR1 有 3 个条目时修复一个变量(即 *_VAR2_VAR3_VAR4.csv )时,如何在循环中迭代这个变量?
我的剧本在这里(我的第一个试探)
#!/bin/bash
#OLDFIS=$IFS
#IFS=","
awk -F "," '
#-------------------------- Table 1 ----------------------- -------#
BEGIN {
print"=========================================================="
printf"%-8s %-8s %-8s %-8s %-8s\n","Network size", "P_Energy", "E_Energy",
"All_energy","Latency"
print"=========================================================="
}
{printf "%-8d %-8d %-8d %-8d %-8d\n",$VAR1, $(R3,C3) ,$(R4,C4) ,$(R5,C5),$(R6,C6)
,$(R7,C7)}' /home/jhon/Desktop/Simulator/results/*_VAR2_VAR3_VAR4.csv
#-----------------------------------------------------------------------------#
在这个例子中,我想修复 VAR1,这将是我输出中的第一列。其他文件我知道他们在文件中的坐标。
编辑1:
对于我的第一个问题,我将代码更改为: NR==3 {printf "%-20s", $1 } NR==25 {printf "%-20s", $2 } NR==12 {printf "%-20s", $2 }
NR==29 {printf "%-20s", $2 } NR==49 {printf "%-20s", $4 }' /...PATH/simStats_P- Mesh__random_16384_1E-4_16.csv >test.txt 我明白了理想的输出:
===================================================================================
Network size P_Energy E_Energy All_energy Latency
=====================================================================================
0.0402597 0.00767312 0.0479328 0.294311
编辑 2:我现在通过使用 FNR 而不是 FN 获得所有值
对于第一行,我输入了假值。知道如何根据文件名称添加循环来解析文件吗?