私がしたいことは次のとおりです。私のデータは同じファイルの行セットにあります。 (vaa vbb変数はこれを繰り返して必要に応じて制御できます。)
必要なのは、次の項目を作成する前に追加の列を追加することです。ファイルのデータは、基本的に各データセットを繰り返すカウンタです。
例:データ行5-8の場合はSet1、データ行14-29の場合はSet2など。
Required output:
1,row5 data
1,row6 data
1,row7 data
1,row8 data
2,row14 data
2,row15 data
.
.
.
2,row29 data
.
.
.
====== Code below ======
awk -v vaa=$varAA -v vbb=$varBB -v vcc=$varC 'NR>=vaa&&NR<=vbb' $I >> part_${I%.*}.csv
csvファイルにファイルを書き込んでいます。行とカウンタ変数のセットを処理できます。ただし、変数$ varC(増分カウンター付き)を使用してデータを提供するために追加の列を追加できるコードスニペットを作成することはできません。
いくつかのフォーラムを見た結果、使用法/例は印刷用または既存のデータセットに列を追加する目的でのみ使用されました。
私はbashコーディングに初めて触れたので、これを達成する方法を理解できません。すべての助けに感謝します。
ありがとうございます。
編集:出力_A.csvにはデータが含まれています。出力_A.txtには、どの地域がデータセットであるかに関する情報が含まれています。 (私が処理したいくつかのタスクごとの算術が必要です。)たとえば、txtファイルデータ:100 200 xyz以下は参照用の完全なコードです。
for I in 'output_A.csv';
do
varC=0
while read line
do
varC=$(( varC + 1 ))
varA=${line%%,*}
varB=$(echo "$line" | cut -d',' -f2- | rev | cut -d',' -f2- | rev)
varAA=$(echo "$varA * 100" | bc -l)
varBB=$(echo "$varB * 100" | bc -l)
#echo -e $varA ' \t' $varB ' \t' $line
awk -v vaa=$varAA -v vbb=$varBB -v vcc=$varC 'NR>=vaa&&NR<=vbb' $I >> part_${I%.*}.csv
done < ${I%.*}.txt
done
答え1
私が理解したのは、awkコマンドを次のように変更する必要があります。
'NR>=vaa&&NR<=vbb'
到着
'NR>=vaa&&NR<=vbb { print vcc "," $0 }'
答え2
形式ファイルの説明によると
awk -F',' 'FNR==NR{
for(i=($1*100),i<=($2*100);i++)
portion=FNR
next }
{ print portion[FNR], $0 }
' output_A.txt output_A.csv >> output_A.result