awkを使用してループインデックスをファイルとして印刷する必要があります。これが私が使用するコードです。
echo "Write the start and end file number:"
read sta end
echo "$sta" "$end"
for (( c="$sta"; c<="$end"; c++ ))
do
echo "$c"
awk '{if (NR < 15 && $8 >0.48 && $8 <0.52 && $9 >0.48 && $9 <0.52 && $10 >0.48 && $10 <0.52) {print $1 " " $8 " " $9 " " $10}}' RD00$c/MergerHalos.out >> center_raw.dat
done
列値1、8、9、10に加えて、次の値を書き込む必要があります。
氏
center_raw.datに。
ベストアンサー1
あなたの要件が何であるかはよくわかりませんが、以下で推論できるのはあなたの要件のようです。
awk -v var="$c" '{if (NR < 15 && $8 >0.48 && $8 <0.52 && $9 >0.48 && $9 <0.52 && $10 >0.48 && $10 <0.52) {print var ":" $1 " " $8 " " $9 " " $10}}' RD00$c/MergerHalos.out >> center_raw.dat
-v
オプションは、awk
awk で外部 bash 変数の値を渡すために使用されます。