のために、私は完璧に動作し、次のawkコマンドがありますように、第1の通り値22、および行のNR:それは何AWK:エスケープ文字を使用して文
awk 'BEGIN { ORS = " " } {print 22, $1, NR; for(i=2;i<=NF;++i) print $i}{print "\n"}' file
は、2つの列を挿入しています3番目(this question参照)。 私は次のようにforループでは、このコマンドを実行しようとした:
for p in 20 21 22
do
awk 'BEGIN { ORS = " " } {print $p, \$1, NR; for(i=2;i<=NF;++i) print \$i}{print "\n"}' file > file$p
done
ので、代わりの最初の列22を各ファイルは最初の列として20、21または22を有する場合、3つのファイルが作られています。残念ながら、これはうまくいかず、私はメッセージを受け取ります:^バックスラッシュは行末にありません。 これはおそらく$文字をどのようにエスケープしたかと関係がありますが、他にどのように行うのかわかりません。
"\で、' $をエスケープしていない」ではなく 'とawkの中には、エスケープ" 'awkスクリプトで。 –