如何在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' 

这是: '"'"'用双引号。