Wie kann ich einfache Anführungszeichen mit Perl-Interpreter umgehen?

8

Wie entkomme ich den einzelnen Qoutes in meinem Bash-Ausdruck find . | xargs perl -pi -e 's/'conflicts' => '',//g' ? Ich möchte die Zeichenfolge 'conflicts' ersetzen = & gt; '', in meinen Akten?

    
Bytemain 22.05.2013, 19:59
quelle

3 Antworten

9

Sie können es nicht direkt in einfache Anführungszeichen setzen. Um ein einzelnes Anführungszeichen zu erhalten, müssen Sie etwas tun wie:

%Vor%

Dies beendet den zitierten Teil, entzieht einem einzelnen Anführungszeichen, wie es außerhalb von Anführungszeichen erscheinen würde, und beginnt dann erneut mit dem Anführungszeichen. Das Ergebnis wird immer noch ein Argument sein.

    
FatalError 22.05.2013, 20:02
quelle
13

FatalError und gpojd haben beide gute Lösungen gegeben. Ich ergänze das mit einer anderen Option:

%Vor%

Das funktioniert, weil in Perl die s/.../.../ -Notation Backslash-Escapes unterstützt. \x27 ist ein Hexadezimal-Escape ( ' ist U + 0027).

    
ruakh 22.05.2013 20:20
quelle
5

Verwenden Sie stattdessen doppelte Anführungszeichen um Ihren Code:

%Vor%     
gpojd 22.05.2013 20:14
quelle

Tags und Links