名前の付いた複数のcsvファイルがあります
VAR1_VAR2_VAR3_VAR4.csv
すべてのファイルは、値の変更だけで同じ構造を持っています。毎回 1 つ以上の VAR を修正して、これらのファイルからデータを取得しようとしています。スクリプトを作成しようとしましたが、2 つの問題があります。
1-すべてのファイルが同じ構造を持っているため、すべてのフィールドを正確に知っているため、行と列の番号 (つまり、$(R1,C4)) に従ってデータを取得したいと考えています。これを行うことはできませんか?
2- VAR1 に 3 つのエントリがあるときに 1 つの変数 (つまり、 *_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: FN の代わりに FNR を使用してすべての値を取得するようになりました
最初の行には、偽の値を入力します。名前に従ってファイルを解析するループを追加する方法はありますか?