如何在awk命令输出中添加单引号?

时间:2016-08-29 15:45:58

标签: bash shell awk escaping

我正在使用Mac Yosemite,bash shell。我想在输出中输出单引号,我尝试了几件事,但没有成功......

awk -F, '{OFS=",";print ''$1'',$4,$6,$7}' my_list.csv

awk -F, '{OFS=",";print "'"$1"'",$4,$6,$7}' my_list.csv

这些都没有将单引号添加到我的输出中。我怎样才能做到这一点?

2 个答案:

答案 0 :(得分:3)

使用变量是一种方法:

kent$ echo "a b c"|awk -v q="'" '$1=q$1q'
'a' b c

或者你选择逃避的方式:

kent$ echo "a b c"|awk '$1="'\''"$1"'\''"'
'a' b c

我更喜欢第一个。

答案 1 :(得分:2)

您也可以使用八进制代码:

# octal code 047 for '
awk -F, -v OFS=, '{print "\047" $1 "\047", $4, $6, $7}' my_list.csv