2012-04-29 15 views
0

私はスクリプトに慣れていないので、パラメータによって渡されるテキストファイルを読み込む方法を理解するのに大変助けが必要です。私はあなたが本当にあなたの答えを愚かにしなければならないことに恐れています。私は10歳のように説明してください!Linuxスクリプト:パラメータを渡す

たとえば、ファイルパスと整数の2つのパラメータを受け入れるスクリプトをどのように記述しますか。

また、スクリプトをどのように実行しますか? script.sh -f data.txt

+2

"たくさんのヘルプ"が必要な場合は、[マニュアルを読む](http://www.gnu.org/software/gawk/manual/gawk.html)が必要です。より具体的な問題がある場合は、StackOverflowが助けを求めるのに便利な場所になります。 –

答えて

1

あなたの要件を少し詳しく説明できますか?

あるファイルからN番目の列を抽出するとします。 AWK内のコマンドラインパラメータを解析する必要はなく、sh(1)からコマンドラインパラメータを渡すだけです。

# foo.sh 
awk "{ print $"$1" }" $2 

ここでは、位置番号である第1引数を取得するためにAWKから脱出しています。 あまりにも混乱しているとわかったらARGCARGVを操作できます。 awk(1)を読んでください。

希望に役立ちます。

+0

はい、ご協力いただきありがとうございます。私は整数Nを受け入れるスクリプトを書こうとしており、渡されたテキストファイルからN番目の列を抽出しています。 私は特にこの時点で固執している部分は、 -fや-sなどのgetoptsを認識します。あなたはこれを行う方法についてアドバイスをしていますか? –

+0

@ user1136076 AFAIK AWKは移植可能ではありません。あなたは 'getopt(1)'を使うことができます。先ほど触れたように 'sh(1)'を使ってawk(1)のパラメータを渡します。 – g13n

+0

シェル変数をAWKスクリプトに直接埋め込むのではなく、AWK変数にシェル変数値を渡すには '-v'オプションを使用するべきです。 –

0

ARGC and ARGVを操作してBEGINブロックの引数リストから整数を抽出すると、これを行うことができます。最初の行が#!/usr/bin/awk -fであるテキストファイルにスクリプトを配置し、ファイルをchmod a+xで実行可能にすることができます。

0

This page GNU AWK(gawk)マニュアルのマニュアルでは、getoptのようにオプションを処理する方法について説明しています。

スクリプトにそのページに表示されている機能を含めます。

関連する問題