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


#!/bin/sh
FILENAME=/test/test.txt
awk -F, '
{ 
    printf("    Code %s  %47dn",$1,$2) >> $FILENAME
    r[NR] = $1
    c[NR] = $3here
}
END {
    for(i = 1; i <= NR; i++) printf("  %s Record Count   %sn", 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  %47dn",$1,$2 >> outfile
    r[NR] = $1
    c[NR] = $3
}
END {
    for(i = 1; i <= NR; i++) printf "  %s Record Count   %sn", r[i],c[i] >> outfile
}' totalsum.txt

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

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

最新更新