如何在awk命令中覆盖单个反转的逗号

时间:2014-06-25 09:26:28

标签: shell unix

如何在awk命令中覆盖单个倒置的逗号。

cat a.txt |awk '{print "Students name is '"$1"'"}'

我想要输出如下:

Students name is 'Rajeev'

4 个答案:

答案 0 :(得分:2)

使用此:

awk -v q="'" '{print "Students name is " q $1 q}'

答案 1 :(得分:1)

您可以对输出中所需的每个单引号使用'"'"'

第一个引号结束单引号字符串。然后我们启动一个双引号字符串,它只是扩展为单引号。然后我们为命令的其余部分输入一个新的单引号字符串。

由于字符串之间没有空格,bash会将它们串在一起。即"a"'b'"ab"'ab'

相同

答案 2 :(得分:1)

你可以这样做:

echo ff | awk $'{print "Students name is \'" $1 "\'" }'

$'string'形式的单词是专门处理的。单词扩展为字符串,替换为ANSI C标准指定的反斜杠转义字符。反斜杠转义序列(如果存在)按如下方式解码:

  \\     backslash
  \'     single quote
  \"     double quote
  \n     new line
  ...

正如here

所解释的那样

答案 3 :(得分:1)

为了避免逃避其他技巧,你可以使用它的八进制表示,如:

$ awk 'BEGIN{print "\047"}'
'

所以:

$ awk '{print "Students name is \047"$1"\047"}' a.txt