问答详情
源自:2-3 shell字符截取命令之awk命令(上)

printf 后面不是应该带单引号的格式吗,为什么awk里不需要

awk '{print $2 "\t" $4}' sutdent.txt 中 $2 "\t" $4 都是格式么

提问者:Dawell 2015-08-23 19:55

个回答

  • 晨妖风
    2015-11-13 12:37:49

    我的理解是,单独使用【printf】时,输入的内容是由【printf】来分割的。要使用单引号确定一个输出格式,然后循环输出所有分割好的字符串。

    使用【awk】时,字符串的分割是由awk分割的,【$n】是调用awk分隔好的字符串。 

    另外,【printf】是整篇文档一起分割的,而【awk】是一行一行分割的。

    带【$】的是awk分割好的字符串,【$1】代表第一个,【$2】代表第二个......。【$0】代表一整行。

    双引号中的转义字符是用来控制输出格式的。

    例如,【awk '{print $1           "\t"             $2}'】,【$1】 到 【"\t"】之间的空格是没用的,只有双引号括起来的才有用。

    例如,【awk '{print $1"           \t            "$2}'】,这下子,空格才生效。