Есть кусок скрипта, формирующих два столбца $7"\t"$11
...
awk -v error_code=404 \
'( ($9 == error_code) && $11 !~ /"-"/ ) {print $7"\t"$11;}' $input | more
...Проблема в том, что надо $11 обработать, убрать двойные кавычки (") в начале и в конце.
В средине столбца могут быть несколько кавычек...
>[оверквотинг удален]
>
> ...
> 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 '{sub(/^"/,"",$2);sub(/"$/,"",$2);gsub("^\"|\"$","",$2)
gsub(/^"|"$/,"",$2)
>>| awk '{sub(/^"/,"",$2);sub(/"$/,"",$2);
> gsub("^\"|\"$","",$2)
> gsub(/^"|"$/,"",$2)блин, ну конечно! слона то я и не заметил ))
gsub действует также как и sub, кроме этого заменяет все вхождения регулярного выраженияплохо, когда не знаешь, да ещё и забудешь ))
>>| awk '{sub(/^"/,"",$2);sub(/"$/,"",$2);
> gsub(/^"|"$/,"",$2)Благодарю, работает.