1つのドットを2つのバックスラッシュでエスケープする-awk


10

「効果的なawkプログラミング」の本には、フィールド分割の例があります。次に例を示します。

フィールドをリテラルのピリオドとその後に続く任意の1文字で区切る場合は、を使用します‘FS = "\\.."’

なぜ二重のバックスラッシュなのですか?そうじゃないの\..

回答:


14

awkの文字列と正規表現はどちらも\\、単一のを含む、同じバックスラッシュエスケープの多くを共有しています\FSは内部的に正規表現として解釈される文字列値であるため、これらの共有エスケープは2回エスケープする必要があります。したがって\\、文字列\は正規表現として解釈されるまでになっています。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.