Как избежать одной кавычки внутри awk



Я хочу сделать следующее



awk 'BEGIN {FS=" ";} {printf "'%s' ", }'


но экранирование одинарной кавычки таким образом не работает



awk 'BEGIN {FS=" ";} {printf "'%s' ", }'


Как это сделать? Спасибо за помощь.

753   5  
awk

5 ответов:

Это может быть то, что вы ищете:

awk 'BEGIN {FS=" ";} {printf "'\''%s'\'' ", }'

С '\'' вы закрываете отверстие ', затем выведите литерал ' убегая от него и, наконец, открыть ' снова.

одинарная кавычка представлена с помощью \x27

Как и в

awk 'BEGIN {FS=" ";} {printf "\x27%s\x27 ", }'

источник

другой вариант-передать одинарную кавычку как переменная awk:

awk -v q=\' 'BEGIN {FS=" ";} {printf "%s%s%s ", q, , q}'

простой пример:

 # Prints 'test me', _including_ the single quotes.
awk -v q=\' '{print q  q }' <<<'test me'
awk 'BEGIN {FS=" "} {printf "7%s7 ", }'
$ cat > test.in
foo
bar
$ awk 'BEGIN {FS=" ";} {printf "'"'"'%s'"'"' ", }' test.in
'foo' 'bar'

вот: '"'"' в двойные кавычки.

Comments

    Ничего не найдено.