0
Это то, что я до сих пор пытался, попробовал несколько способов, но не могу понять, как это правильно. Моя цель состоит в том, чтобы дезинфицировать вход для предотвращения проблем при вводе в MySQL из текстового файлаКак избежать одиночной кавычки с использованием awk в сценарии bash
cat 'file.txt' | awk '{gsub(/'"'"'/, '.') ; print $0}' > 'file_sanitized.txt'
Дубликат http://stackoverflow.com/questions/2332917/awk-to-replace-single-quote – Iceman
Как примечание стороны, как правило, следует предпочесть 'AWK
Вы использовали неправильно процитировать:
источник
2017-01-04 16:23:45
Вы не можете сделать это, когда ваш скрипт находится в файле, который вызывается с помощью 'awk -f script', поэтому, если вы начинаете с одного лайнера, вызванного из командной строки, и в конечном итоге хотите сохранить его в файле, который вы должны запомнить измените место, где вы это делали. Лично я просто использую '\ 047'. –
Поскольку вы просили «как избежать одинарные кавычки, используя AWK» вот решение с использованием AWK:
где
\x27
является представление последовательности побег шестнадцатеричное значение 27 (одиночная цитата).Список всех управляющих последовательностей см https://www.gnu.org/software/gawk/manual/html_node/Escape-Sequences.html
источник
2017-01-04 16:27:02 user2314737
Нет, НЕ используйте шестнадцатеричное значение '\ x27', вместо этого используйте восьмеричный' \ 047'. См. Http://stackoverflow.com/a/41474373/1745001. –
Что вы хотите:
См http://awk.freeshell.org/PrintASingleQuote.
источник
2017-01-04 22:35:01
Если OP хочет заменить один символ другим, 'tr' - это то, что он хочет. – hek2mgl
Заданный вопрос: «Как избежать одиночной кавычки, используя awk в bash-скрипте», а не «Как заменить один символ другим в скрипте оболочки». Да, в приведенном минимальном примере используется эта функциональность в контексте изменения '' '' '. '', Но это более широкий вопрос. –