0

私はこれに不慣れで、少し暗闇の中で、私のタイトルがマークから外れている場合は、私を訂正してください。あるファイルからawkに変数を設定してから、別のファイルでスクリプトを呼び出そうとしています。

元:

  • sqlinsertはfields.txtに書き込みます

私は実行します:

猫のテキストファイル| ./awkscript

awkscriptは、テキストファイルでの実行中にfields.txtから'fields'varをプルします

これが私が持っているものです。私はgetl​​ineを使用していますが、それは私が探しているものではありません。別のファイルの最初の行から値を取得する必要があります。

\#!/opt/local/bin/gawk -f

BEGIN { 
    printf "Enter field lengths: "
    getline fields < "-"
        print fields
}       

BEGIN {FIELDWIDTHS = fields; OFS="|"}
{
        {       for (i=1;i<=NF;i++) sub(/[ \t]*$/,"",$i)        }

\#       {       for (i=1;i<=NF;i++) sub(/^[ \t]*/,"",$i)        }

        print
}
4

1 に答える 1

1

私が探していたのはこれでした:

猫のテキストファイル| generic.awk -v fields = '10 1 21 21 4'

この-vオプションは複数回使用することもできます:cat textfile | generic.awk -v field1 = "10" -v field2 = "1" -v field3 = "21" -v field4 = "21" -v field5 = "4"

于 2013-02-27T19:47:30.647 に答える