Linux・・・、というかBash等のシェルの操作において、半角スペースの要否は重要です。
半角スペースが、コマンドや引数を区切る文字としての働きをするからです。半角スペースを入れるべきところで入れなかったら、コマンドと引数との区別、また引数同士の区別ができなくなります。
<コマンド>半角スペース<引数1>半角スペース<引数2>
というように、スペースが区切り文字の役割を果たします。
例えば「ls」コマンドは、引数として指定したディレクトリ内のファイルやディレクトリ一覧を表示しますが、コマンド名(ls)と引数となる文字列(ディレクトリ名)の間にはスペースが必要です。これによって、どこまでがコマンド名で、どこからが引数文字列かを、シェルに区別してもらえます。
この点でよく犯すミスが、if文記述時によく出てくる [] の前後のスペースです。[ は単なる記号ではなくて、コマンドです。ですから、前後にスペースが必要となります。逆にスペース不要なのについ入れてしまうのが、変数への代入時に使う = の前後です。変数へ値を代入するときに、= の前後にスペースを入れると、スペースが区切り文字と機能するため、エラーとなります。
上記の半角スペースの要否は、awk(オーク)においても全く同様です。
awkは、プログラミング言語として機能しますが、テキスト操作を行うためのコマンドの一種とも言えます。
awkの基本形は、「awk <スクリプト> <対象ファイル>」 ですが、
awk スペース <スクリプト> スペース <対象ファイル>
というように、それぞれの間にスペースが必要です。

なお、<スクリプト>の部分は、「パターン」と「アクション」の2つで構成され、
'パターン{アクション}'
という形をとります。
このパターンとアクションの間は、スペースはあってもなくてもよくて、その両方が許容されています。ただし、アクションは、波カッコで括る必要があります。
上記スペースの要否は、ごくごく当たり前のこと、まぁ当然の前提ですから、「何を今さら」って言われかねません。今回の件は、自分自身にとって、基本の確認作業でした。
それではまた次の記事で。
goosyun
