URL: https://www.opennet.ru/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID9
Нить номер: 9851
[ Назад ]

Исходное сообщение
"Как убрать двойные кавычки средствами AWK?"

Отправлено universite , 26-Мрт-14 03:21 
Есть кусок скрипта, формирующих два столбца $7"\t"$11


...
awk -v error_code=404 \
    '( ($9 == error_code) && $11 !~ /"-"/ ) {print $7"\t"$11;}' $input | more
...

Проблема в том, что надо $11 обработать, убрать двойные кавычки (") в начале и в конце.
В средине столбца могут быть несколько кавычек...


Содержание

Сообщения в этом обсуждении
"Как убрать двойные кавычки средствами AWK?"
Отправлено михалыч , 26-Мрт-14 05:47 
>[оверквотинг удален]
>
 
> ...
> awk -v error_code=404 \
>     '( ($9 == error_code) && $11 !~ /"-"/
> ) {print $7"\t"$11;}' $input | more
> ...
>

> Проблема в том, что надо $11 обработать, убрать двойные кавычки (") в
> начале и в конце.
> В средине столбца могут быть несколько кавычек...

echo test \"te\"xt\" | awk '{sub(/^"/,"",$2);sub(/"$/,"",$2);print $2}'

{sub(/^"/,"",$11);sub(/"$/,"",$11); print $7"\t"$11;}


"Как убрать двойные кавычки средствами AWK?"
Отправлено Andrey Mitrofanov , 26-Мрт-14 09:55 
>| awk '{sub(/^"/,"",$2);sub(/"$/,"",$2);

gsub("^\"|\"$","",$2)
gsub(/^"|"$/,"",$2)


"Как убрать двойные кавычки средствами AWK?"
Отправлено михалыч , 26-Мрт-14 12:02 
>>| awk '{sub(/^"/,"",$2);sub(/"$/,"",$2);
> gsub("^\"|\"$","",$2)
> gsub(/^"|"$/,"",$2)

блин, ну конечно! слона то я и не заметил ))

gsub действует также как и sub, кроме этого заменяет все вхождения регулярного выражения
плохо, когда не знаешь, да ещё и забудешь ))

"Как убрать двойные кавычки средствами AWK?"
Отправлено universite , 26-Мрт-14 12:16 
>>| awk '{sub(/^"/,"",$2);sub(/"$/,"",$2);
> gsub(/^"|"$/,"",$2)

Благодарю, работает.