Suche nach dem Literal "> \" mit ack-grep


9

Ich suche nach Zeilen, die buchstäblich ein Zeichen größer als (ein ">") haben, gefolgt von einem Leerzeichen, gefolgt von einem Backslash-Zeichen (ein "\"), dh einer Zeile mit diesem:> \

Ich dachte, Flucht würde dies ermöglichen, und für das Größere als es tut:

  $ ack-grep "\>"

Gibt Zeilen mit ">" zurück.

Aber wenn ich auch versuche, dem Backslash zu entkommen, bekomme ich:

  $ ack-grep "\> \\"

ack-grep: Ungültiger regulärer Ausdruck '\> \':
Nachlauf \ im regulären Ausdruck m / \> /

Antworten:


6

Wow, ich war so nah dran ... einfache Anführungszeichen:

$ ack-grep '\> \\'

Ich habe dies herausgefunden, nachdem ich bestätigt hatte, dass meine Regex-Übereinstimmung mit http://regexpal.com/ gültig war und zufällig einfache Anführungszeichen hatte , weil ich etwas anderes ausprobiert hatte.



1

Verwenden Sie die Literaloption, um nach Literalzeichenfolgen zu suchen:

ack-grep --literal '> \'

0

Bitte beachten Sie, dass das Problem hier nicht mit ack, sondern mit dem Shell-Zitat zusammenhängt. Sie hätten dieses Problem mit jedem Programm, das Sie als Argument "> \" übergeben wollten.


Ja, hätte ich das zuerst gewusst : mpi-inf.mpg.de/~uwe/lehre/unixffb/quoting-guide.html 3.1.11 Die goldenen Regeln der Bourne-Shell zitieren Alles andere, was von der Shell misshandelt werden könnte, ist geschützt durch Einzelzitate.
Stephen Gornick
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.