sed, um einzelne und doppelte Anführungszeichen gleichzeitig zu entfernen

7

Ich versuche, einfache und doppelte Anführungszeichen aus einer Datei zu entfernen. Kann ich es in einem einzigen sed Befehl tun?

Ich versuche es:

%Vor%

, aber erhalte diesen Fehler

  

'' 'ist nicht übereinstimmend.

Bitte helfen Sie.

    
user2689092 16.08.2013, 10:37
quelle

6 Antworten

12

Eine andere Möglichkeit wäre, tr :

zu verwenden %Vor%     
twalberg 16.08.2013 15:40
quelle
5

Versuchen Sie stattdessen Folgendes:

%Vor%     
Imane Fateh 16.08.2013 10:46
quelle
3

Sie können ein einzelnes Zitat nicht innerhalb eines Paares von einzelnen Anführungszeichen in der Shell entkommen lassen. Es ist jedoch erlaubt, doppelte Anführungszeichen zu entfernen. Der folgende sed-Befehl sollte funktionieren:

%Vor%     
anubhava 16.08.2013 13:26
quelle
2

Sie können die folgenden Befehle verwenden

%Vor%

Required_file.txt ist die endgültige Ausgabe.

    
Barcode 22.11.2016 11:09
quelle
0

Nun, hier ist, worauf ich gekommen bin.

Zunächst habe ich mit ord () herausgefunden, was Codes für einfache und doppelte Anführungszeichen sind, und dann die $ (..) -Syntax verwendet, um sie in einen nicht angegebenen sed-Ausdruck zu übergeben. Ich habe XX und yy anstelle von leeren Saiten verwendet. Offensichtlich ist es von optimal, d. H. Sie sollten vielleicht zu einem Ausdruck kombiniert werden, ich ermutige Sie, damit zu experimentieren. Es gibt mehrere Techniken, um Probleme zu vermeiden. Sie können den Ausdruck sed auch in eine separate Datei einfügen, um zu vermeiden, dass er von der Shell interpretiert wird. Der Trick ord () / chr () ist auch nützlich, wenn versucht wird, mit einzelnen unlesbaren Zeichen in der Ausgabe umzugehen, z. UTF-Zeichenfolgen auf Nicht-UTF-Konsole.

%Vor%

BEARBEITEN (beachten Sie, dass diesmal beide Zeichen durch die gleiche Zeichenfolge "yy" ersetzt werden.) Es könnte einige Shell-Utilities geben, die Zeichen in Zeichencodes und umgekehrt übersetzen, dh es sollte möglich sein, dies ohne zu tun perl oder andere Sprache Dolmetscher.

%Vor%

und hier ist noch ein anderer Weg in der Shell, vielleicht noch einfacher

%Vor%     
Piotr Wadas 16.08.2013 10:55
quelle
0

Ich löste es (in Centos 7 ), indem ich die umgebenden Zitate alle zusammen lösche wie:

%Vor%     
JEFF A MCLEAN 04.04.2018 12:37
quelle

Tags und Links