如何在awk中打​​印引号字符

如何在awk中打​​印引号字符

str.txt我有一个包含以下示例记录的文件。

31,2713810299,1,11-Aug-15 19:52:10
32,2713810833,1,11-Aug-15 21:36:18

现在我想用 awk 打印输出,如下所示。

cat str.txt|awk -F, '{print substr("$4",1,9)}' -

输出应该是:

'11-Aug-15' 
'11-Aug-15' 

答案1

单引号是\x27

awk -F, '{print "\x27"substr($4,1,9)"\x27" }'

答案2

POSIXly:

awk -F'[ ,]' -v q="'" '{print q$4q}' <file

答案3

对于 POSIX Awk,方法略有不同:

awk -F'[, ]' '{printf "\047%s\047\n", $4}' file
'11-Aug-15'
'11-Aug-15'

答案4

你可以使用awk这样的命令:

cat str.txt|awk -F, '{print substr($4,1,9)}' -

获得以下输出:

11-Aug-15
11-Aug-15

如果行首和行尾需要单引号,则:

cat str.txt|awk -F, '{printf "\047%s\047\n",substr($4,1,9)}' -

获得以下输出:

'11-Aug-15'
'11-Aug-15'

相关内容