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.