2011-12-09 13 views

答えて

2

-F\'フィールドセパレータとして単一引用符'を使用しています。

また、'の前には、\があるため、awkは、アクション部分の先頭として'とは考えません。

別の方法としては、二重引用符で'を囲むことができます。

$ echo "foo'bar'baz" | awk -F\' '{print $1}' 
foo 
$ echo "foo'bar'baz" | awk -F"'" '{print $1}' 
foo 
1

AWKは、行毎にファイルを処理します。そして、各行はフィールドに分割され、ドルの変数$1 ... $9$0はIIRC全体の行です)でアクセスできます。デフォルトでは、空白で区切りを使用して行をフィールドに分割しますが、-FコマンドラインオプションまたはFS変数を使用して、分割する文字を指定することができます。

だからあなたの場合には、フィールドセパレータは、単一引用符(')に設定されています。したがって、foo'bar'bazのような入力ラインは、$1 == "foo",$2 == "bar"および$3 == "baz"と設定されます。

関連する問題