ファイルから読み取った値を変数に渡し、別のファイルの列のすべての要素を変更するために、特にエントリをある数だけシフトするために使用します。列エントリに変数を追加するawk
データファイル "file_to_change"には、数値データの2つの列があり、1つは値がシフトされます。これと同じように:
-11.43465
I電流は、次のコードを持っている:
file=tmp
var1=$(awk 'NR==1' $file)
echo $var1
awk '{print ($1 - $var1) " " $2}' file_to_change
echo $var1
は私の結果は次のとおりです。
-1.643465E+01 1.378835E-03
-1.642464E+01 1.242392E-03
-1.641463E+01 1.147501E-03
-1.640462E+01 1.083067E-03
-1.639461E+01 1.042069E-03
-1.638460E+01 1.020041E-03
-1.637459E+01 1.014211E-03
シフト値を含むファイル "tmpが" 単にこれです
-11.43465
0 1.378835E-03
0 1.242392E-03
0 1.147501E-03
0 1.083067E-03
0 1.042069E-03
0 1.020041E-03
0 1.014211E-03
-11.43465
私はこれがプレット単純ですが、どこにエラーがあるのかわかりません!
あなたがそのようなawkでシェル変数を使用することはできません( ' $ var1')。 'awk -v var1 =" $ var1 "'{... var1 ...' –
あなたは変数をawkに次のようにシェルから渡すことができます: 'awk -v' var1あなたは変数をvar1ではなくvar1と呼んでいます) – Anonymous