0
Dies ist, was ich bisher habe, versuchte mehrere Möglichkeiten, aber kann es nicht richtig bekommen. Mein Ziel ist es, den Eingang zu sanieren Probleme zu verhindern, während zu MySQL von Textdatei EingabeSo fliehen einzelne Anführungszeichen mit awk in einem Bash-Skript
cat 'file.txt' | awk '{gsub(/'"'"'/, '.') ; print $0}' > 'file_sanitized.txt'
Duplizieren von http://stackoverflow.com/questions/2332917/awk-to-replace-single-quote – Iceman
Als Randbemerkung, sollten Sie in der Regel bevorzugen 'awk
Sie haben verwendet falsch zitiert:
Quelle
2017-01-04 16:23:45
Sie können das nicht, wenn Ihr Skript in einer Datei ist, die mit 'awk -f script' aufgerufen wird. Wenn Sie also mit einem Liner beginnen, der von der Kommandozeile aus aufgerufen wird und in einer Datei gespeichert werden soll ändere überall wo du das gemacht hast. Persönlich benutze ich nur '\ 047'. –
Da Ihnen angeforderte hier eine Lösung mit awk "wie Apostroph mit awk zu entkommen":
wo
\x27
ist die Escape-Sequenz Darstellung der hexadezimale Wert 27 (ein einfaches Zitat).Eine Liste aller Escape-Sequenzen sehen https://www.gnu.org/software/gawk/manual/html_node/Escape-Sequences.html
Quelle
2017-01-04 16:27:02 user2314737
Nein, verwenden Sie NICHT den Hexadezimalwert '\ x27', verwenden Sie stattdessen oktal' \ 047'. Siehe http://stackoverflow.com/a/41474373/1745001. –
Was Sie wollen, ist:
Siehe http://awk.freeshell.org/PrintASingleQuote.
Quelle
2017-01-04 22:35:01
Wenn das OP ein Zeichen durch ein anderes ersetzen will, ist 'tr' das, was er/sie will. – hek2mgl
Die Frage, die gestellt wurde, war 'Wie man einzelnes Anführungszeichen mit awk in einem Bashskript entkommt', nicht' Wie man ein Zeichen durch ein anderes in einem Shellskript ersetzt'. Ja, das minimale Beispiel, das gepostet wurde, verwendet diese Funktionalität im Zusammenhang mit dem Ändern von '' '' '' '' ', aber es ist eine umfassendere Frage. –