シェルスクリプトのループでawkを実行しようとすると、「構文エラー:ループ変数エラー」が発生する

シェルスクリプトのループでawkを実行しようとすると、「構文エラー:ループ変数エラー」が発生する

awk端末でうまく機能するコマンドがあります。awk列見出しに基づいて別のファイルを生成します。 awkコマンド:

for((i=2;i<5;i++)); do 
    awk -v i=$i 'BEGIN{OFS=FS="\t"}NR==1{n=$i}{print $1,$i > n".txt"}' ${Batch}.result.txt
done

シェルスクリプトにマージすると、同じコマンドがエラーを表示します。

Syntax error: Bad for loop variable

仕組みは次のとおりです。提案されているようにshe-bangを試しましたが、エラーが繰り返されました。

for i in 2 3 4; do awk -v i=$i 'BEGIN{OFS=FS="\t"}NR==1{n=$i}{print $1,$i  n".txt"}'

ベストアンサー1

私はエラーがあなたのコマンドにAwk関連していないと思います。 forループ構成がサポートされていないshPOSIX bourneシェルでこれを実行していると思います。((

bashスクリプトを実行し、shebangをインストールパスに設定します。#!/usr/bin/env bash検索は常に可能なわけではないので、通常これを行うのは安全です。#!/usr/bin/env特にLinux以外のシステムではさらにそうです。 OpenBSDシステムの場合。PATHbashbash/bin/usr/local/bin

おすすめ記事