如何在awk中转义单引号
我想要做以下
awk 'BEGIN {FS=" ";} {printf "'%s' ", $1}'
但以这种方式转义单引号是行不通的
awk 'BEGIN {FS=" ";} {printf "\'%s\' ", $1}'
这个怎么做? 感谢帮助。
这也许你正在寻找:
awk 'BEGIN {FS=" ";} {printf "'\''%s'\'' ", $1}'
也就是说,用'\''
closures开放'
,然后打印一个文字'
逃脱它,最后再打开'
。
单引号用\x27
表示
像
awk 'BEGIN {FS=" ";} {printf "\x27%s\x27 ", $1}'
资源
另一种select是将单引号作为awkvariables传递:
awk -vq=\' 'BEGIN {FS=" ";} {printf "%s%s%s ", q, $1, q}'
更简单的例子:
# Prints 'test me', _including_ the single quotes. awk -vq=\' '{print q $0 q }' <<<'test me'
awk 'BEGIN {FS=" "} {printf "\047%s\047 ", $1}'
$ cat > test.in foo bar $ awk 'BEGIN {FS=" ";} {printf "'"'"'%s'"'"' ", $1}' test.in 'foo' 'bar'
这是: '"'"'
用双引号。