#!/bin/sh
FILENAME=/test/test.txt
awk -F, '
{
printf(" Code %s %\047d\n",$1,$2) >> $FILENAME
r[NR] = $1
c[NR] = $3here
}
END {
for(i = 1; i <= NR; i++) printf(" %s Record Count %s\n", r[i],c[i]) >> $FILENAME
}' totalsum.txt
我正在尝试将awk的结果路由到文件。但是它没有写入文件..这种语法有任何错误。
答案 0 :(得分:2)
FILENAME
是内置的awk变量。你有点不幸的选择作为你想要保存输出文件名的变量的名称,但这是不使用全大写变量名的另一个原因,除非你有充分的理由。您还尝试使用shell语法来访问变量内容(awk使用var
,而不是$var
)。
outfile=/test/test.txt
awk -F, -v outfile="$outfile" '
{
printf " Code %s %\047d\n",$1,$2 >> outfile
r[NR] = $1
c[NR] = $3
}
END {
for(i = 1; i <= NR; i++) printf " %s Record Count %s\n", r[i],c[i] >> outfile
}' totalsum.txt
您确定要使用>>
代替>
吗?
为什么输出重定向在awk中而不是在外部?