Verwenden von awk printf, um Text zu urldecodieren

8

Ich verwende awk , um Text zu urldecodieren.

Wenn ich die Zeichenfolge in die printf -Anweisung wie printf "%s", "\x3D" codiere, gibt sie = korrekt aus. Das gleiche, wenn ich die ganze Zeichenfolge als Variable habe.

Wenn ich aber nur 3D habe, wie kann ich \x anhängen, damit printf die = und nicht \x3D ausdruckt?

Ich verwende busybox awk 1.4.2 und die ash Shell.

    
Johan 16.09.2010, 15:12
quelle

5 Antworten

1

Da du Asche verwendest und Perl nicht verfügbar ist, gehe ich davon aus, dass du gawk nicht hast.

Wenn ich gawk oder busybox awk verwende, funktioniert Ihr zweites Beispiel genauso wie das erste (ich bekomme "=" von beiden), wenn ich nicht die Option --posix verwende (in der Fall bekomme ich "x3D" für beide ).

Wenn ich --non-decimal-data oder --traditional mit gawk verwende, bekomme ich "=".

Welche Version von AWK verwenden Sie ( awk , nawk , gawk , busybox - und Versionsnummer)?

Bearbeiten:

Sie können den String-Wert der Variablen durch Hinzufügen von Null in einen numerischen Wert übernehmen:

%Vor%     
Dennis Williamson 16.09.2010, 17:58
quelle
3

Ich weiß nicht, wie du das in awk machst, aber in Perl ist das trivial:

%Vor%     
zwol 16.09.2010 15:17
quelle
2

GNU awk

%Vor%

Oder

%Vor%

Dekodierung der URL-Kodierung (Prozentkodierung)

    
Steven Penny 01.05.2014 10:47
quelle
0

Dies beruht auf der Erweiterung der Split-Funktion von gnu awk, aber das funktioniert:

%Vor%     
Joel Jones 22.02.2014 21:32
quelle
0

Zunächst einmal ist mir klar, dass dies eine alte Frage ist, aber keine der Antworten funktionierte für mich (beschränkt auf busybox awk)

Zwei Optionen. Analysieren von stdin:

%Vor%

Um einen Befehlszeilenparameter zu nehmen:

%Vor%

Sie müssen% 25 zuletzt ausführen, da andernfalls Zeichenfolgen wie% 253D doppelt analysiert werden, was nicht passieren sollte.

Die Inline-Überprüfung für y == 38 ist, weil gsub behandelt & amp; als Sonderzeichen, es sei denn Sie Backslash es.

    
Whinger 19.10.2017 12:42
quelle

Tags und Links