kshでawkを正しく使用する方法は?

kshでawkを正しく使用する方法は?

私は持っています:

  1 #!/bin/ksh
  2 BEGIN { print "START" }
  3       { print "Hello World" }
  4 END   { print "STOP"   }
  5 
  6 
  7 exit 0

その後、ファイルを実行しようとすると、次のエラーが発生します。

./file[2]: BEGIN: not found
./file[3]: syntax error: `{' unmatched

コマンドはawkキーワードの前に来るべきですかBEGIN

ベストアンサー1

あなたの質問を説明するとき、あなたはawk簡単なスクリプトを実行しようとし、kshそれを中心にスクリプトを洗練します。これを行うには、次のようにスクリプトを変更する必要があります。

  1 #!/bin/ksh
  2 awk 'BEGIN { print "START" } \
  3       { print "Hello World" } \
  4 END   { print "STOP"  }'
  5 
  6 
  7 exit 0

スクリプトは$ PATHで実行されるawkときに大きな文字列を使用します。awk大きな文字列はksh文字列の補間を防ぐために一重引用符で囲まれており、3つの小さな文字列ではなく1つの大きな文字列にするために2行、3行、および4行の最後の文字としてバックスラッシュを使用します。

「START」を印刷した後、スクリプトがksh停止したように見えます。 「Return」または「Enter」を数回押すだけです。 「入力」するたびに「Hello World」が表示されます。 Control-Dを実行してファイルの終わりを示しますawk。プロセスawkは「STOP」を印刷して終了します。

ksh他のタスクを実行するには、入力ファイルを提供してファイルやawkパイプに送信するなど、より多くのコンテンツを作成する必要があります。

おすすめ記事