Dengan membaca pertanyaan ini , saya telah menemukan bahwa GNU grep
memiliki -X
opsi yang mengharapkan argumen. Anehnya, itu tidak disebutkan di halaman manual atau di halaman info.
Melihat kode sumber, ada komentar tepat di tengah-tengah --help
output :
/* -X is deliberately undocumented. */
Melihat lebih jauh, tampak bahwa -X matcher
pilihan menetapkan mesin yang digunakan untuk regexp , matcher
menjadi salah satu dari grep
, egrep
, fgrep
, awk
, gawk
, posixawk
dan perl
(sebagai versi 2,25).
Beberapa dari nilai-nilai secara ketat identik dengan pilihan yang ada (yaitu grep -G
, grep -E
, grep -F
dan grep -P
). Di sisi lain, ketiga awk
varian tidak memiliki opsi yang sesuai.
Apakah ada yang tahu apa tujuan sebenarnya dari opsi ini, terutama dengan salah satu awk
mesin regexp? Adakah yang bisa memberi tahu saya mengapa itu sengaja tidak didokumentasikan?
-E
untuk sed GNU yang menyediakan kompatibilitas dengan sed BSD. (Saya berharap-E
untuk didokumentasikan jika POSIX secara resmi mengadopsinya dan menghapusnya jika tidak.)-X
sengaja tidak didokumentasikan. (Alamat emailnya ada di changelog jika Anda ingin menanyakannya.)Jawaban:
Tujuannya adalah untuk menyediakan akses ke berbagai pencocokan yang diterapkan dalam GNU
grep
dalam satu bentuk atau lainnya, khususnya pencocokan AWK yang tidak tersedia sebaliknya, mungkin untuk tujuan pengujian (lihat bug 16481 yang membahas penambahangawk
danposixawk
pencocokan).Namun saat ini kereta, yang menjadi alasan mengapa itu didokumentasikan sebagai tidak berdokumen :
Sebuah tindak lanjut meminta komentar yang akan ditambahkan, dan memberikan sedikit lebih latar belakang pada
-X
pilihan:yang dilakukan Stepan tidak lama kemudian .
sumber
-X
, mungkin sebagai efek samping dari penulisan ulang DFA, tetapi changelog kekurangan detail.