Mencari literal "> \" menggunakan ack-grep


9

Saya mencari garis yang benar-benar memiliki lebih dari karakter (a ">") diikuti oleh spasi diikuti oleh karakter backslash (a "\") yaitu, garis dengan ini:> \

Saya pikir melarikan diri akan memungkinkan ini, dan untuk yang lebih besar dari yang dilakukannya:

  $ ack-grep "\>"

mengembalikan baris yang memiliki ">" di dalamnya.

Tetapi ketika saya mencoba untuk melarikan diri dari backslash juga saya dapatkan:

  $ ack-grep "\> \\"

ack-grep: Regex tidak valid '\> \':
Trailing \ di regex m / \> /

Jawaban:


6

Wow, saya sangat dekat ... kutipan tunggal:

$ ack-grep '\> \\'

Mengetahui hal ini setelah mengonfirmasi bahwa pertandingan regex saya valid menggunakan: http://regexpal.com/ dan kebetulan memiliki satu tanda kutip dari mencoba sesuatu yang lain.



1

Untuk mencari string literal, gunakan opsi literal:

ack-grep --literal '> \'

0

Harap dicatat bahwa masalah di sini bukan dengan ack tetapi dengan mengutip shell. Anda akan mengalami masalah ini dengan program apa pun yang Anda coba sampaikan "> \" sebagai argumen.


Yup, seandainya saya tahu ini dulu: mpi-inf.mpg.de/~uwe/lehre/unixffb/quoting-guide.html 3.1.11 Aturan emas dari Bourne shell mengutip segala hal lain yang mungkin diperlakukan dengan buruk oleh shell dilindungi oleh kutipan tunggal.
Stephen Gornick
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.