lolos dari satu titik dengan backslash ganda - awk

10

Buku "pemrograman awk yang efektif" memiliki contoh tentang Field-Splitting. berikut adalah contohnya:

Jika Anda ingin bidang dipisahkan oleh periode literal diikuti oleh karakter tunggal apa pun, gunakan ‘FS = "\\.."’.

Mengapa double backslash? bukankah seharusnya begitu \..?

Majid Azimi
sumber

Jawaban:

14

Baik string dan ekspresi reguler dalam awk berbagi banyak dari garis miring terbalik yang sama, termasuk \\untuk satu \. Karena FSnilai string yang ditafsirkan secara internal sebagai ekspresi reguler, pelarian yang dibagikan tersebut harus diloloskan dua kali. Jadi \\dalam string menjadi \pada saat itu ditafsirkan sebagai ekspresi reguler.

jw013
sumber