如何在awk中使用打印语法将内容写入ksh中的文件

how to use print syntax in awk to write content into file in ksh

#!/bin/sh
FILENAME=/test/test.txt
awk -F, '
{ 
    printf("    Code %s  %7d\n",,) >> $FILENAME
    r[NR] = 
    c[NR] = here
}
END {
    for(i = 1; i <= NR; i++) printf("  %s Record Count   %s\n", r[i],c[i]) >> $FILENAME
}' totalsum.txt

我正在尝试将 awk 的结果路由到文件。但它没有写入文件。该语法是否有任何错误。

FILENAME 是一个内置的 awk 变量。你有点不走运,选择它作为你想要保存输出文件名的变量名,但这是另一个不使用全大写变量名的原因,除非你有充分的理由。您还尝试使用 shell 语法来访问变量内容(awk 使用 var,而不是 $var)。

outfile=/test/test.txt
awk -F, -v outfile="$outfile" '
{ 
    printf "    Code %s  %7d\n",, >> outfile
    r[NR] = 
    c[NR] = 
}
END {
    for(i = 1; i <= NR; i++) printf "  %s Record Count   %s\n", r[i],c[i] >> outfile
}' totalsum.txt

你确定要使用 >> 而不是 > 吗?

为什么输出重定向在 awk 内部而不是外部?