如何在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 内部而不是外部?
#!/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 内部而不是外部?